/*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(); } }
public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException { if (_stringBuffer != null) flushText(); _currentLocalName = localName.intern(); DynamicContentHandler newContext = null; if (_currentLocalName == TAG_USEABLE_PERIOD) { try { newContext = VALID_TIME_DATATYPE.getHandler(namespaceURI, localName, qName, atts); } catch (FactoryException x) { } } else { newContext = ENXPPresenter.instance() .getContentHandler(namespaceURI, localName, qName, atts, PART_DATATYPE); } if (newContext == null) newContext = new IgnoreContentHandler(); this.suspendWith(newContext, atts); }