@Override public void setId(String id) { // This test should be performed in order to ensure valid identifiers // for Units: if (!isReadingInProgress()) { ValuePair<Integer, Integer> lv = getLevelAndVersion(); if ((0 <= lv.compareTo(Integer.valueOf(2), Integer.valueOf(3))) && Unit.Kind.isValidUnitKindString(id, lv.getL().intValue(), lv.getV().intValue())) { throw new IllegalArgumentException(MessageFormat.format( "Cannot use the name {0} of a unit base kind as an identifier for a UnitDefinition.", id)); } } super.setId(id); }
} else { Model model = getModel(); if (((model == null) || Kind.isValidUnitKindString(units, getLevel(), getVersion())) || (((model != null) && (model.getUnitDefinition(units) != null)))) {
unit = unit.trim(); if (unit.length() > 0) { if (Kind.isValidUnitKindString(unit, model.getLevel(), model .getVersion())) { isValidUnit = true;
if (Unit.Kind.isValidUnitKindString(getUnits(), level, version)) { return UnitDefinition.getPredefinedUnit(getUnits(), level, version); } else if (parent.getModel() == null) {
version = parent.getVersion(); if (Unit.Kind.isValidUnitKindString(getUnits(), level, version)) { return UnitDefinition.getPredefinedUnit(getUnits(), level, version);
@Override public ASTNodeValue compile(double real, String units) { ASTNodeValue v = new ASTNodeValue(real, this); UnitDefinition ud; if (Unit.Kind.isValidUnitKindString(units, level, version)) { ud = new UnitDefinition(level, version); ud.addUnit(Unit.Kind.valueOf(units.toUpperCase())); v.setUnits(ud); } else if (model != null) { ud = model.getUnitDefinition(units); if (ud != null) { v.setUnits(ud); } } return v; }
@Override public <T> ASTNode2Value<String> compile(double real, String units) { ASTNode2Value<String> v = new ASTNode2Value<String>(StringTools.toString(Locale.ENGLISH, real), this); UnitDefinition ud; if (Unit.Kind.isValidUnitKindString(units, level, version)) { ud = new UnitDefinition(level, version); ud.addUnit(Unit.Kind.valueOf(units.toUpperCase())); v.setUnits(ud); } else if (model != null) { ud = model.getUnitDefinition(units); if (ud != null) { v.setUnits(ud); } } return v; }