private String readText(XmlPullParser xpp) throws XmlPullParserException, IOException { StringBuilder bldr = new StringBuilder(); while (xpp.getEventType() != XmlPullParser.END_TAG) { if (xpp.getEventType() == XmlPullParser.TEXT) { bldr.append(xpp.getText()); xpp.next(); } else { xpp.next(); bldr.append(readText(xpp)); xpp.next(); skipWhitespace(xpp); } } return bldr.toString(); }
private String readElement(XmlPullParser xpp, String name, String context, boolean complex) throws XmlPullParserException, IOException { checkAtElement(xpp, name, context); xpp.next(); skipWhitespace(xpp); String val = null; if (complex) { val = readText(xpp); } else if (xpp.getEventType() == XmlPullParser.TEXT) { val = xpp.getText(); xpp.next(); skipWhitespace(xpp); } if (xpp.getEventType() != XmlPullParser.END_TAG) { throw new XmlPullParserException("Unexpected content reading "+context); } xpp.next(); skipWhitespace(xpp); return val; }
private BaseUnit parseBaseUnit(XmlPullParser xpp) throws XmlPullParserException, IOException { BaseUnit base = new BaseUnit(xpp.getAttributeValue(null, "Code"), xpp.getAttributeValue(null, "CODE")); base.setDim(xpp.getAttributeValue(null, "dim").charAt(0)); xpp.next(); skipWhitespace(xpp); base.getNames().add(readElement(xpp, "name", "base-unit "+base.getCode(), false)); base.setPrintSymbol(readElement(xpp, "printSymbol", "base-unit "+base.getCode(), false)); base.setProperty(readElement(xpp, "property", "base-unit "+base.getCode(), false)); xpp.next(); skipWhitespace(xpp); return base; }
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 Prefix parsePrefix(XmlPullParser xpp) throws XmlPullParserException, IOException, UcumException { Prefix prefix = new Prefix(xpp.getAttributeValue(null, "Code"), xpp.getAttributeValue(null, "CODE")); xpp.next(); skipWhitespace(xpp); prefix.getNames().add(readElement(xpp, "name", "prefix "+prefix.getCode(), false)); prefix.setPrintSymbol(readElement(xpp, "printSymbol", "prefix "+prefix.getCode(), false)); checkAtElement(xpp, "value", "prefix "+prefix.getCode()); prefix.setValue(new Decimal(xpp.getAttributeValue(null, "value"), 24)); readElement(xpp, "value", "prefix "+prefix.getCode(), true); xpp.next(); skipWhitespace(xpp); return prefix; }
private String readText(XmlPullParser xpp) throws XmlPullParserException, IOException { StringBuilder bldr = new StringBuilder(); while (xpp.getEventType() != XmlPullParser.END_TAG) { if (xpp.getEventType() == XmlPullParser.TEXT) { bldr.append(xpp.getText()); xpp.next(); } else { xpp.next(); bldr.append(readText(xpp)); xpp.next(); skipWhitespace(xpp); } } return bldr.toString(); }
private String readElement(XmlPullParser xpp, String name, String context, boolean complex) throws XmlPullParserException, IOException { checkAtElement(xpp, name, context); xpp.next(); skipWhitespace(xpp); String val = null; if (complex) { val = readText(xpp); } else if (xpp.getEventType() == XmlPullParser.TEXT) { val = xpp.getText(); xpp.next(); skipWhitespace(xpp); } if (xpp.getEventType() != XmlPullParser.END_TAG) { throw new XmlPullParserException("Unexpected content reading "+context); } xpp.next(); skipWhitespace(xpp); return val; }
private BaseUnit parseBaseUnit(XmlPullParser xpp) throws XmlPullParserException, IOException { BaseUnit base = new BaseUnit(xpp.getAttributeValue(null, "Code"), xpp.getAttributeValue(null, "CODE")); base.setDim(xpp.getAttributeValue(null, "dim").charAt(0)); xpp.next(); skipWhitespace(xpp); base.getNames().add(readElement(xpp, "name", "base-unit "+base.getCode(), false)); base.setPrintSymbol(readElement(xpp, "printSymbol", "base-unit "+base.getCode(), false)); base.setProperty(readElement(xpp, "property", "base-unit "+base.getCode(), false)); xpp.next(); skipWhitespace(xpp); return base; }
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 Prefix parsePrefix(XmlPullParser xpp) throws XmlPullParserException, IOException, UcumException { Prefix prefix = new Prefix(xpp.getAttributeValue(null, "Code"), xpp.getAttributeValue(null, "CODE")); xpp.next(); skipWhitespace(xpp); prefix.getNames().add(readElement(xpp, "name", "prefix "+prefix.getCode(), false)); prefix.setPrintSymbol(readElement(xpp, "printSymbol", "prefix "+prefix.getCode(), false)); checkAtElement(xpp, "value", "prefix "+prefix.getCode()); prefix.setValue(new Decimal(xpp.getAttributeValue(null, "value"), 24)); readElement(xpp, "value", "prefix "+prefix.getCode(), true); xpp.next(); skipWhitespace(xpp); return prefix; }