private DefinedUnit parseUnit(XmlPullParser xpp) throws XmlPullParserException, IOException, UcumException { DefinedUnit unit = new DefinedUnit(xpp.getAttributeValue(null, "Code"), xpp.getAttributeValue(null, "CODE")); unit.setMetric("yes".equals(xpp.getAttributeValue(null, "isMetric"))); unit.setSpecial("yes".equals(xpp.getAttributeValue(null, "isSpecial"))); unit.setClass_(xpp.getAttributeValue(null, "class")); xpp.next(); skipWhitespace(xpp); while (xpp.getEventType() == XmlPullParser.START_TAG && "name".equals(xpp.getName())) unit.getNames().add(readElement(xpp, "name", "unit "+unit.getCode(), false)); if (xpp.getEventType() == XmlPullParser.START_TAG && "printSymbol".equals(xpp.getName())) unit.setPrintSymbol(readElement(xpp, "printSymbol", "unit "+unit.getCode(), true)); unit.setProperty(readElement(xpp, "property", "unit "+unit.getCode(), false)); unit.setValue(parseValue(xpp, "unit "+unit.getCode())); xpp.next(); skipWhitespace(xpp); return unit; }
@Override public Set<String> getProperties() { Set<String> result = new HashSet<String>(); for (DefinedUnit unit : model.getDefinedUnits()) { result.add(unit.getProperty()); } return result; }
@Override public List<DefinedUnit> getDefinedForms(String code) throws UcumException { assert checkStringParam(code) : paramError("getDefinedForms", "code", "must not be null or empty"); List<DefinedUnit> result = new ArrayList<DefinedUnit>(); BaseUnit base = model.getBaseUnit(code); if (base != null) { for (DefinedUnit unit : model.getDefinedUnits()) { if (!unit.isSpecial() && code.equals(getCanonicalUnits(unit.getCode()))) result.add(unit); } } return result; }
if (sym.startsWith(prefix.getCode())) { unit = model.getUnit(sym.substring(prefix.getCode().length())); if (unit != null && (unit.getKind() == ConceptKind.BASEUNIT || ((DefinedUnit) unit).isMetric())) { selected = prefix; break;
@Override public List<DefinedUnit> getDefinedForms(String code) throws UcumException { assert checkStringParam(code) : paramError("getDefinedForms", "code", "must not be null or empty"); List<DefinedUnit> result = new ArrayList<DefinedUnit>(); BaseUnit base = model.getBaseUnit(code); if (base != null) { for (DefinedUnit unit : model.getDefinedUnits()) { if (!unit.isSpecial() && code.equals(getCanonicalUnits(unit.getCode()))) result.add(unit); } } return result; }
if (sym.startsWith(prefix.getCode())) { unit = model.getUnit(sym.substring(prefix.getCode().length())); if (unit != null && (unit.getKind() == ConceptKind.BASEUNIT || ((DefinedUnit) unit).isMetric())) { selected = prefix; break;
private DefinedUnit parseUnit(XmlPullParser xpp) throws XmlPullParserException, IOException, UcumException { DefinedUnit unit = new DefinedUnit(xpp.getAttributeValue(null, "Code"), xpp.getAttributeValue(null, "CODE")); unit.setMetric("yes".equals(xpp.getAttributeValue(null, "isMetric"))); unit.setSpecial("yes".equals(xpp.getAttributeValue(null, "isSpecial"))); unit.setClass_(xpp.getAttributeValue(null, "class")); xpp.next(); skipWhitespace(xpp); while (xpp.getEventType() == XmlPullParser.START_TAG && "name".equals(xpp.getName())) unit.getNames().add(readElement(xpp, "name", "unit "+unit.getCode(), false)); if (xpp.getEventType() == XmlPullParser.START_TAG && "printSymbol".equals(xpp.getName())) unit.setPrintSymbol(readElement(xpp, "printSymbol", "unit "+unit.getCode(), true)); unit.setProperty(readElement(xpp, "property", "unit "+unit.getCode(), false)); unit.setValue(parseValue(xpp, "unit "+unit.getCode())); xpp.next(); skipWhitespace(xpp); return unit; }
private Canonical expandDefinedUnit(String indent, DefinedUnit unit) throws UcumException { String u = unit.getValue().getUnit(); if (unit.isSpecial()) { if (!handlers.exists(unit.getCode())) throw new UcumException("Not handled yet (special unit)"); else u = handlers.get(unit.getCode()).getUnits(); } Term t = new ExpressionParser(model).parse(u); debug(indent, "now handle", t); Canonical result = normalise(indent+" ", t); result.multiplyValue(unit.getValue().getValue()); return result; }
@Override public Set<String> getProperties() { Set<String> result = new HashSet<String>(); for (DefinedUnit unit : model.getDefinedUnits()) { result.add(unit.getProperty()); } return result; }
private Canonical expandDefinedUnit(String indent, DefinedUnit unit) throws UcumException { String u = unit.getValue().getUnit(); if (unit.isSpecial()) { if (!handlers.exists(unit.getCode())) throw new UcumException("Not handled yet (special unit)"); else u = handlers.get(unit.getCode()).getUnits(); } Term t = new ExpressionParser(model).parse(u); debug(indent, "now handle", t); Canonical result = normalise(indent+" ", t); result.multiplyValue(unit.getValue().getValue()); return result; }