@Override public void setVariable(Variable variable) { if (variable != null) { if (variable.isConstant()) { throw new IllegalArgumentException(MessageFormat.format( resourceBundle.getString("Assignment.ILLEGAL_CONSTANT_VARIABLE_MSG"), variable.getId(), getElementName())); } if (isSetUnits() && !(variable instanceof Parameter)) { throw new IllegalArgumentException(MessageFormat.format( "Variable expected to be an instance of Parameter because a Unit attribute is set already, but given is an instance of {0}.", variable.getElementName())); } if ((getLevel() < 3) && (variable instanceof SpeciesReference)) { throw new IllegalArgumentException(MessageFormat.format( resourceBundle.getString("Assignment.ILLEGAL_VARIABLE_EXCEPTION_MSG"), variable.getId(), getElementName())); } if (variable.isSetId()) { String oldVariable = variableID; variableID = variable.getId(); firePropertyChange(TreeNodeChangeEvent.variable, oldVariable, variableID); } else { unsetVariable(); } } else { unsetVariable(); } }
@Override public String getElementName() { if (getLevel() == 1) { if (isSpeciesConcentration()) { switch (getVersion()) { case 1: return "specieConcentrationRule"; case 2: return "speciesConcentrationRule"; default: break; } } else if (isCompartmentVolume()) { return "compartmentVolumeRule"; } else if (isParameter()) { return "parameterRule"; } } return super.getElementName(); }
@Override public boolean check(ValidationContext ctx, ExplicitRule r) { Model m = r.getModel(); String var = r.getVariable(); if (r.isSetVariable() && m != null) { Compartment c = m.getCompartment(var); if (c != null && c.isSetSpatialDimensions() && c.getSpatialDimensions() == 0) { ValidationConstraint.logError(ctx, CORE_20911, r, r.getElementName(), r.getVariable()); return false; } } return true; } };