Example #1
0
  /*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();
    }
  }
Example #2
0
 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
   }
 }