name = r.getObjectName(); if(name != null) { int id = ((runtime.Object)c.getVariable( name ).getValue()).getObjectId().intValue(); name = r.getVariableName(); new LemAttributeChangeEvent(id, name, destination.getValue(), value.getValue()).notifyAll( c ); }
    public Variable executeAssignmentAction( AssignmentAction a, Context c ) throws LemRuntimeException {        VariableReference r = a.getVariableReference();        Variable destination = getVariable( r, c );                Variable value = evaluateExpression( a.getExpression(), c );                if ( value.getCoreDataType() != destination.getCoreDataType() ) {            String name = r.getObjectName();            throw new LemRuntimeException( "Type mismatch: evaluated '" + value.getType().getName() + "', expected '" + destination.getType() + "', name: " + r.getVariableName() );        }                destination.setValue( value.getValue() );        return destination;    }