Class StructureLoader

java.lang.Object
com.sun.xml.bind.v2.runtime.unmarshaller.Loader
com.sun.xml.bind.v2.runtime.unmarshaller.StructureLoader

public final class StructureLoader extends Loader
Loads children of an element.

This loader works with a single JaxBeanInfo and handles attributes, child elements, or child text.

Author:
Kohsuke Kawaguchi
  • Constructor Details

  • Method Details

    • init

      public void init(JAXBContextImpl context, ClassBeanInfoImpl beanInfo, Accessor<?,Map<QName,String>> attWildcard)
      Completes the initialization.

      To fix the cyclic reference issue, the main part of the initialization needs to be done after a StructureLoader is set to ClassBeanInfoImpl.loader.

    • startElement

      public void startElement(UnmarshallingContext.State state, TagName ea) throws SAXException
      Description copied from class: Loader
      Called when the loader is activated, which is when a new start tag is seen and when the parent designated this loader as the child loader.

      The callee may change state.loader to designate another Loader for the processing. It's the responsibility of the callee to forward the startElement event in such a case.

      Overrides:
      startElement in class Loader
      ea - info about the start tag. never null.
      Throws:
      SAXException
    • childElement

      public void childElement(UnmarshallingContext.State state, TagName arg) throws SAXException
      Description copied from class: Loader
      Called when this loaderis an active loaderand we see a new child start tag.

      The callee is expected to designate another loaderas a loaderthat processes this element, then it should also register a Receiver. The designated loaderwill become an active loader.

      The default implementation reports an error saying an element is unexpected.

      Overrides:
      childElement in class Loader
      Throws:
      SAXException
    • getExpectedChildElements

      public Collection<QName> getExpectedChildElements()
      Description copied from class: Loader
      Returns a set of tag names expected as possible child elements in this context.
      Overrides:
      getExpectedChildElements in class Loader
    • getExpectedAttributes

      public Collection<QName> getExpectedAttributes()
      Description copied from class: Loader
      Returns a set of tag names expected as possible child elements in this context.
      Overrides:
      getExpectedAttributes in class Loader
    • text

      public void text(UnmarshallingContext.State state, CharSequence text) throws SAXException
      Description copied from class: Loader
      Called when this loaderis an active loaderand we see a chunk of text. The runtime makes sure that adjacent characters (even those separated by comments, PIs, etc) are reported as one event. IOW, you won't see two text event calls in a row.
      Overrides:
      text in class Loader
      Throws:
      SAXException
    • leaveElement

      public void leaveElement(UnmarshallingContext.State state, TagName ea) throws SAXException
      Description copied from class: Loader
      Called when this loaderis an active loaderand we see an end tag.
      Overrides:
      leaveElement in class Loader
      Throws:
      SAXException
    • getBeanInfo

      public JaxBeanInfo getBeanInfo()