/*package*/ static class ENBuilder<T extends EN> implements DatatypeBuilder<T> { private final CSPresenter.CSBuilder _csBuilder = (CSPresenter.CSBuilder) CSPresenter.instance().getBuilder(); private final ENXPPresenter.ENXPBuilder _partBuilder = (ENXPPresenter.ENXPBuilder) ENXPPresenter.instance().getBuilder(); protected ENXPPresenter.ENXPBuilder partBuilder() { return _partBuilder; } public void build(RimGraphXMLSpeaker.ContentBuilder builder, T value, String localName) throws BuilderException { try { if (builder.nullValueHandled(value, localName)) return; _csBuilder.buildAttribute(builder, value.use(), ATTR_USE); builder.startElement(localName); for (ENXP part : value) partBuilder().build(builder, part); // Emit useablePeriod if present. if (!value.useablePeriod().isNullJ()) builder.build(value.useablePeriod(), TAG_USEABLE_PERIOD); builder.endElement(localName); } catch (SAXException ex) { throw new BuilderException(ex); } } public void buildStructural( RimGraphXMLSpeaker.ContentBuilder builder, T value, String localName) throws BuilderException { throw new UnsupportedOperationException(); } }
protected void notifyActivation(Attributes atts) { String nullFlavorString = atts.getValue(DatatypePresenterBase.ATTR_NULL_FLAVOR); if (nullFlavorString != null) { _result = ENnull.valueOf(nullFlavorString); } else { String useString = atts.getValue(ATTR_USE); if (useString != null) _use = CSPresenter.parseList(useString, "2.16.840.1.113883.5.45"); // FIXME use enums } }