コード例 #1
0
ファイル: ENPresenter.java プロジェクト: markusgumbel/dshl7
  /*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();
    }
  }
コード例 #2
0
ファイル: ENPresenter.java プロジェクト: markusgumbel/dshl7
 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);
 }