@Override @Deprecated public void setUnits(UnitDefinition units) { if (units != null) { units = units.simplify(); if (units.isVariantOfSubstance()) { setSubstanceUnits(units.getUnit(0)); } else if (units.isVariantOfTime()) { setTimeUnits(units.getUnit(0)); } else if (units.isVariantOfSubstancePerTime()) { for (Unit unit : units.getListOfUnits()) { if (unit.isVariantOfSubstance()) { setSubstanceUnits(unit); } else { // must be variant of time^-1 Unit u = unit.clone(); u.setExponent(-unit.getExponent()); setTimeUnits(u); } } } else { throw new IllegalArgumentException(MessageFormat.format( ILLEGAL_UNIT_KIND_EXCEPTION_MSG, UnitDefinition .printUnits(units, true))); } } else { unsetUnits(); } }
/** * * @return the UnitDefinition instance which has the timeUnistID of this * KineticLaw as id. Return null if it doesn't exist. */ @Deprecated public UnitDefinition getTimeUnitsInstance() { Model m = getModel(); if ((m != null) && isSetTimeUnits()) { return m.getUnitDefinition(timeUnitsID); } if (unitsID != null) { UnitDefinition def = new UnitDefinition(UnitDefinition.TIME, getLevel(), getVersion()); Unit time; for (Unit unit : getUnitsInstance().getListOfUnits()) { time = unit.clone(); time.setExponent(-unit.getExponent()); if (unit.isVariantOfTime()) { def.addUnit(time); } } return def; } return null; }
/** * Tests if a given unit definition is a variant * of the predefined unit identifier 'substance per area'. * * @return {@code true} if this UnitDefinition is a variant of the predefined * unit 'substance per area'. */ public boolean isVariantOfSubstancePerArea() { if (isSetListOfUnits()) { UnitDefinition ud = clone(); if (isInvalidSBMLAllowed()) { ud.putUserObject(JSBML.ALLOW_INVALID_SBML, Boolean.TRUE); } ud.convertToSIAndSubstanceUnits(); if (ud.getUnitCount() == 2) { if (ud.getUnit(0).isVariantOfSubstance()) { Unit two = ud.getUnit(1).clone(); two.setExponent(-two.getExponent()); return two.isVariantOfArea(); } else if (ud.getUnit(1).isVariantOfSubstance()) { Unit one = ud.getUnit(0).clone(); one.setExponent(-one.getExponent()); return one.isVariantOfArea(); } } } return false; }
Unit unit = unit1.clone(); if (!(unit.isDimensionless() || unit.isInvalid())) { unit.setExponent(-unit1.getExponent());