s.setParameters(passedValues); s.setDelay(delay); s.setTarget(target);
ds.setParameters(passedValues); ds.setDelay(delay); ds.setTarget(target);
    public void executeGenerateAction( GenerateAction a, Context c ) throws LemRuntimeException {        LinkedList p = a.getParameters();	LinkedList passedValues = null;        if (p != null) {            passedValues = new LinkedList();                        /* Evaluate parameters - pass by value obviously */            Iterator i = p.iterator();	    while(i.hasNext()) {                Expression e = (Expression)i.next();                Variable result = evaluateExpression(e, c);                passedValues.add(result);            }        }                VariableReference vr = a.getTarget();        Variable targetRef = getVariable( vr, c );        if (!(targetRef instanceof ObjectReferenceVariable)) {            throw new LemRuntimeException("Type mismatch: expected objref, got " + targetRef.getType().getName());        }                runtime.Object target = (runtime.Object)((ObjectReferenceVariable)targetRef).getValue();        Expression delayExpression = a.getDelayTime() ;        if ( delayExpression != null ) {            Variable v = evaluateExpression( delayExpression, c ) ;	    if (!(v instanceof NumericVariable)) {            	throw new LemRuntimeException("Type mismatch: expected numeric, got " + v.getType().getName());	    }            BigDecimal delay = (BigDecimal)v.getValue() ;	    DelayedSignal s = new DelayedSignal(a.getEvent());	    if (passedValues != null)        	s.setParameters(passedValues);	    s.setDelay(delay);	    s.setTarget(target);	                System.out.println("Interpreter adding a signal with delay: " + delay) ; 	    java.lang.Thread sg = new SignalGenerator(s, currentObject);	    return;        }        // Create the new signal        System.out.println("Interpreter adding a signal");        Signal s = new Signal(a.getEvent());	if (passedValues != null)        	s.setParameters(passedValues);        if (target == currentObject) {            target.addSignalSelf(s);        } else {            target.addSignal(s);        }    }