/** * 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())); }
/** * Remove all values from a parameter set. */ public void removeValues() { testWriteOK((MParameter)getModelElement()); internalGetValues().clear(); }
/** * Remove a value to a parameter set. * @param value The new value. */ public void removeValue(Object value) { testWriteOK((MParameter)getModelElement()); internalGetValues().remove(value); }
MParameter mparam = (MParameter)getModelElement(); List<Object> tmpvalues = new ArrayList<Object>(); if(inivals==null && mparam!=null)
/** * 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())); }
/** * */ protected List<Object> internalGetValues() { // In case of push the last saved/evaluated value is returned return MParameter.EvaluationMode.PULL.equals(((MParameter)getModelElement()).getEvaluationMode())? evaluateValues(inivals): values; } }
/** * Get the values of a parameterset. * @return The values. */ public Object[] getValues() { return getValues(((MParameter)getModelElement()).getType(getAgent().getClassLoader())); }
/** * The values to set. * @param values The values to set */ // Internal method, overridden for message event. protected void setValues(List<Object> values) { testWriteOK((MParameter)getModelElement()); internalSetValues(values); }
/** * Get the class of a value. */ protected Class<?> getClazz() { MParameter mparam = (MParameter)getModelElement(); return mparam.getClazz().getType(agent.getClassLoader(), agent.getModel().getAllImports()); }