throw new LemRuntimeException("Type mismatch: expected objref");
throw new LemRuntimeException("Type mismatch: expected objref, got " + targetRef.getType().getName());
    public void executeGenerateAction( GenerateAction a, Context c ) throws LemRuntimeException {        // Create the new signal	System.out.println("execute generate action");        Signal s = new Signal(a.getEvent());        LinkedList p = a.getParameters();        if (p != null) {            LinkedList passedValues = new LinkedList();                        /* Evaluate parameters - pass by value obviously */            for (Iterator i = p.iterator(); i.hasNext();) {                Expression e = (Expression)i.next();                Variable result = evaluateExpression(e, c);                passedValues.add(result);            }                        s.setParameters(passedValues);        }                VariableReference vr = a.getTarget();        Variable targetRef = getVariable( vr, c );        if (!(targetRef instanceof ObjectReferenceVariable)) {            throw new LemRuntimeException("Type mismatch: expected objref");        }                runtime.Object target = (runtime.Object)((ObjectReferenceVariable)targetRef).getValue();        	System.out.println("Interpreter adding a signal");        if (target == currentObject) {            target.addSignalSelf(s);        } else {            target.addSignal(s);        }    }