java.lang.Object
com.sun.xml.bind.v2.runtime.unmarshaller.Loader
Direct Known Subclasses:
DefaultValueLoaderDecorator, Discarder, DomLoader, LeafPropertyLoader, LeafPropertyXsiLoader, ProxyLoader, StructureLoader, TextLoader, ValuePropertyLoader, XsiTypeLoader

public abstract class Loader extends Object
Author:
Kohsuke Kawaguchi
  • Field Details

    • expectText

      protected boolean expectText
  • Constructor Details

    • Loader

      protected Loader(boolean expectText)
    • Loader

      protected Loader()
  • Method Details

    • startElement

      public void startElement(UnmarshallingContext.State state, TagName ea) throws SAXException
      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.

      Parameters:
      ea - info about the start tag. never null.
      Throws:
      SAXException
    • childElement

      public void childElement(UnmarshallingContext.State state, TagName ea) throws SAXException
      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.

      Throws:
      SAXException
    • reportUnexpectedChildElement

      protected final void reportUnexpectedChildElement(TagName ea, boolean canRecover) throws SAXException
      Throws:
      SAXException
    • getExpectedChildElements

      public Collection<QName> getExpectedChildElements()
      Returns a set of tag names expected as possible child elements in this context.
    • getExpectedAttributes

      public Collection<QName> getExpectedAttributes()
      Returns a set of tag names expected as possible child elements in this context.
    • text

      public void text(UnmarshallingContext.State state, CharSequence text) throws SAXException
      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.
      Throws:
      SAXException
    • expectText

      public final boolean expectText()
      True if this loader expects the text(UnmarshallingContext.State, CharSequence) method to be called. False otherwise.
    • leaveElement

      public void leaveElement(UnmarshallingContext.State state, TagName ea) throws SAXException
      Called when this loaderis an active loaderand we see an end tag.
      Throws:
      SAXException
    • fireBeforeUnmarshal

      protected final void fireBeforeUnmarshal(JaxBeanInfo beanInfo, Object child, UnmarshallingContext.State state) throws SAXException
      Fires the beforeUnmarshal event if necessary.
      Parameters:
      state - state of the newly create child object.
      Throws:
      SAXException
    • fireAfterUnmarshal

      protected final void fireAfterUnmarshal(JaxBeanInfo beanInfo, Object child, UnmarshallingContext.State state) throws SAXException
      Fires the afterUnmarshal event if necessary.
      Parameters:
      state - state of the parent object
      Throws:
      SAXException
    • handleGenericException

      protected static void handleGenericException(Exception e) throws SAXException
      Last resort when something goes terribly wrong within the unmarshaller.
      Throws:
      SAXException
    • handleGenericException

      public static void handleGenericException(Exception e, boolean canRecover) throws SAXException
      Throws:
      SAXException
    • handleGenericError

      public static void handleGenericError(Error e) throws SAXException
      Throws:
      SAXException
    • reportError

      protected static void reportError(String msg, boolean canRecover) throws SAXException
      Throws:
      SAXException
    • reportError

      public static void reportError(String msg, Exception nested, boolean canRecover) throws SAXException
      Throws:
      SAXException
    • handleParseConversionException

      protected static void handleParseConversionException(UnmarshallingContext.State state, Exception e) throws SAXException
      This method is called by the generated derived class when a datatype parse method throws an exception.
      Throws:
      SAXException