/** * Create a new parameter. * @param modelelement The model element. * @param name The name. */ public RParameterSet(MParameter modelelement, String name, IInternalAccess agent, Object vals, String pename) { super(modelelement, agent); this.name = name!=null?name: modelelement.getName(); List<Object> inivals = new ArrayList<Object>(); if(vals!=null) { Iterator<?> it = SReflect.getIterator(vals); while(it.hasNext()) { inivals.add(it.next()); } } setValues(new ListWrapper<Object>(vals!=null? inivals: new ArrayList<Object>(), getAgent(), ChangeEvent.VALUEADDED+"."+pename+"."+getName(), ChangeEvent.VALUEREMOVED+"."+pename+"."+getName(), ChangeEvent.VALUECHANGED+"."+pename+"."+getName(), getModelElement())); }
/** * Add a value to a parameter set. * @param value The new value. */ public void addValue(Object value) { testWriteOK((MParameter)getModelElement()); if(value!=null && getModelElement()!=null) { Class<?> clazz = ((MParameter)getModelElement()).getClazz().getType(getAgent().getClassLoader(), getAgent().getModel().getAllImports()); if(!SReflect.isSupertype(clazz, value.getClass())) { throw new IllegalArgumentException("Incompatible value for parameter set "+getName()+": "+value); } value = SReflect.convertWrappedValue(value, clazz); } internalGetValues().add(value); }
/** * Create a new parameter. * @param modelelement The model element. * @param name The name. */ public RParameterSet(MParameter modelelement, String name, IInternalAccess agent, List<UnparsedExpression> inivals, String pename) { super(modelelement, agent); this.name = name!=null?name: modelelement.getName(); if(modelelement!=null && modelelement.getEvaluationMode()==EvaluationMode.PULL) { this.inivals = inivals; } setValues(new ListWrapper<Object>(evaluateValues(inivals), getAgent(), ChangeEvent.VALUEADDED+"."+pename+"."+getName(), ChangeEvent.VALUEREMOVED+"."+pename+"."+getName(), ChangeEvent.VALUECHANGED+"."+pename+"."+getName(), getModelElement())); }
/** * Get the values of a parameterset. * @return The values. */ public Object[] getValues() { return getValues(((MParameter)getModelElement()).getType(getAgent().getClassLoader())); }