private Value parseValue(XmlPullParser xpp, String context) throws XmlPullParserException, UcumException, IOException { checkAtElement(xpp, "value", context); Decimal val = null; if (xpp.getAttributeValue(null, "value") != null) try { if (xpp.getAttributeValue(null, "value").contains(".")) val = new Decimal(xpp.getAttributeValue(null, "value"), 24); // unlimited precision for these else val = new Decimal(xpp.getAttributeValue(null, "value")); } catch (NumberFormatException e) { throw new XmlPullParserException("Error reading "+context+": "+e.getMessage()); } Value value = new Value(xpp.getAttributeValue(null, "Unit"), xpp.getAttributeValue(null, "UNIT"), val); value.setText(readElement(xpp, "value", context, true)); return value; }
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 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 Value parseValue(XmlPullParser xpp, String context) throws XmlPullParserException, UcumException, IOException { checkAtElement(xpp, "value", context); Decimal val = null; if (xpp.getAttributeValue(null, "value") != null) try { if (xpp.getAttributeValue(null, "value").contains(".")) val = new Decimal(xpp.getAttributeValue(null, "value"), 24); // unlimited precision for these else val = new Decimal(xpp.getAttributeValue(null, "value")); } catch (NumberFormatException e) { throw new XmlPullParserException("Error reading "+context+": "+e.getMessage()); } Value value = new Value(xpp.getAttributeValue(null, "Unit"), xpp.getAttributeValue(null, "UNIT"), val); value.setText(readElement(xpp, "value", context, true)); return value; }
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 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; }