Class UnmarshallerImpl

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, javax.xml.bind.Unmarshaller, javax.xml.bind.ValidationEventHandler

    public final class UnmarshallerImpl
    extends javax.xml.bind.helpers.AbstractUnmarshallerImpl
    implements javax.xml.bind.ValidationEventHandler, java.io.Closeable
    Default Unmarshaller implementation.

    This class can be extended by the generated code to provide type-safe unmarshall methods.

    Author:
    Kohsuke KAWAGUCHI
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface javax.xml.bind.Unmarshaller

        javax.xml.bind.Unmarshaller.Listener
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      void close()
      Must be called from same thread which created the UnmarshallerImpl instance.
      javax.xml.bind.UnmarshalException createUnmarshalException​(org.xml.sax.SAXException e)  
      XmlVisitor createUnmarshallerHandler​(InfosetScanner scanner, boolean inplace, JaxBeanInfo expectedType)
      Creates and configures a new unmarshalling pipe line.
      protected void finalize()  
      <A extends javax.xml.bind.annotation.adapters.XmlAdapter>
      A
      getAdapter​(java.lang.Class<A> type)  
      javax.xml.bind.attachment.AttachmentUnmarshaller getAttachmentUnmarshaller()  
      <T> JaxBeanInfo<T> getBeanInfo​(java.lang.Class<T> clazz)  
      UnmarshallingContext getContext()  
      javax.xml.bind.ValidationEventHandler getEventHandler()  
      javax.xml.bind.Unmarshaller.Listener getListener()  
      java.lang.Object getProperty​(java.lang.String name)  
      javax.xml.validation.Schema getSchema()  
      javax.xml.bind.UnmarshallerHandler getUnmarshallerHandler()  
      protected org.xml.sax.XMLReader getXMLReader()
      Obtains a configured XMLReader.
      boolean handleEvent​(javax.xml.bind.ValidationEvent event)
      Default error handling behavior for Unmarshaller.
      boolean hasEventHandler()
      Returns true if an event handler is installed.
      boolean isValidating()
      Deprecated.
      since 2.0
      static boolean needsInterning​(org.xml.sax.XMLReader reader)  
      <A extends javax.xml.bind.annotation.adapters.XmlAdapter>
      void
      setAdapter​(java.lang.Class<A> type, A adapter)  
      void setAttachmentUnmarshaller​(javax.xml.bind.attachment.AttachmentUnmarshaller au)  
      void setListener​(javax.xml.bind.Unmarshaller.Listener listener)  
      void setProperty​(java.lang.String name, java.lang.Object value)  
      void setSchema​(javax.xml.validation.Schema schema)  
      void setValidating​(boolean validating)
      Deprecated.
      since 2.0
      java.lang.Object unmarshal​(javax.xml.stream.XMLEventReader reader)  
      <T> javax.xml.bind.JAXBElement<T> unmarshal​(javax.xml.stream.XMLEventReader reader, java.lang.Class<T> expectedType)  
      java.lang.Object unmarshal​(javax.xml.stream.XMLStreamReader reader)  
      <T> javax.xml.bind.JAXBElement<T> unmarshal​(javax.xml.stream.XMLStreamReader reader, java.lang.Class<T> expectedType)  
      java.lang.Object unmarshal​(javax.xml.transform.sax.SAXSource source)
      Deprecated.
      <T> javax.xml.bind.JAXBElement<T> unmarshal​(javax.xml.transform.Source source, java.lang.Class<T> expectedType)  
      java.lang.Object unmarshal​(org.w3c.dom.Node node)  
      <T> javax.xml.bind.JAXBElement<T> unmarshal​(org.w3c.dom.Node node, java.lang.Class<T> expectedType)  
      protected java.lang.Object unmarshal​(org.xml.sax.XMLReader reader, org.xml.sax.InputSource source)  
      protected <T> javax.xml.bind.JAXBElement<T> unmarshal​(org.xml.sax.XMLReader reader, org.xml.sax.InputSource source, java.lang.Class<T> expectedType)  
      java.lang.Object unmarshal0​(java.io.InputStream input, JaxBeanInfo expectedType)  
      java.lang.Object unmarshal0​(javax.xml.stream.XMLStreamReader reader, JaxBeanInfo expectedType)  
      java.lang.Object unmarshal0​(javax.xml.transform.Source source, JaxBeanInfo expectedType)  
      java.lang.Object unmarshal0​(org.w3c.dom.Node node, JaxBeanInfo expectedType)  
      • Methods inherited from class javax.xml.bind.helpers.AbstractUnmarshallerImpl

        setAdapter, setEventHandler, unmarshal, unmarshal, unmarshal, unmarshal, unmarshal, unmarshal
      • Methods inherited from class java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • getUnmarshallerHandler

        public javax.xml.bind.UnmarshallerHandler getUnmarshallerHandler()
        Specified by:
        getUnmarshallerHandler in interface javax.xml.bind.Unmarshaller
      • getXMLReader

        protected org.xml.sax.XMLReader getXMLReader()
                                              throws javax.xml.bind.JAXBException
        Obtains a configured XMLReader. This method is used when the client-specified SAXSource object doesn't have XMLReader. Unmarshaller is not re-entrant, so we will only use one instance of XMLReader. Overriden in order to fix potential security issue.
        Overrides:
        getXMLReader in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
        Throws:
        javax.xml.bind.JAXBException
      • createUnmarshallerHandler

        public final XmlVisitor createUnmarshallerHandler​(InfosetScanner scanner,
                                                          boolean inplace,
                                                          JaxBeanInfo expectedType)
        Creates and configures a new unmarshalling pipe line. Depending on the setting, we put a validator as a filter.
        Returns:
        A component that implements both UnmarshallerHandler and ValidationEventHandler. All the parsing errors should be reported to this error handler for the unmarshalling process to work correctly. Also, returned handler expects all the XML names to be interned.
      • needsInterning

        public static boolean needsInterning​(org.xml.sax.XMLReader reader)
      • unmarshal

        protected java.lang.Object unmarshal​(org.xml.sax.XMLReader reader,
                                             org.xml.sax.InputSource source)
                                      throws javax.xml.bind.JAXBException
        Specified by:
        unmarshal in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
        Throws:
        javax.xml.bind.JAXBException
      • unmarshal

        protected <T> javax.xml.bind.JAXBElement<T> unmarshal​(org.xml.sax.XMLReader reader,
                                                              org.xml.sax.InputSource source,
                                                              java.lang.Class<T> expectedType)
                                                       throws javax.xml.bind.JAXBException
        Throws:
        javax.xml.bind.JAXBException
      • unmarshal

        public <T> javax.xml.bind.JAXBElement<T> unmarshal​(javax.xml.transform.Source source,
                                                           java.lang.Class<T> expectedType)
                                                    throws javax.xml.bind.JAXBException
        Specified by:
        unmarshal in interface javax.xml.bind.Unmarshaller
        Overrides:
        unmarshal in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
        Throws:
        javax.xml.bind.JAXBException
      • unmarshal0

        public java.lang.Object unmarshal0​(javax.xml.transform.Source source,
                                           JaxBeanInfo expectedType)
                                    throws javax.xml.bind.JAXBException
        Throws:
        javax.xml.bind.JAXBException
      • getEventHandler

        public final javax.xml.bind.ValidationEventHandler getEventHandler()
        Specified by:
        getEventHandler in interface javax.xml.bind.Unmarshaller
        Overrides:
        getEventHandler in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
      • hasEventHandler

        public final boolean hasEventHandler()
        Returns true if an event handler is installed.

        The default handler ignores any errors, and for that this method returns false.

      • unmarshal

        public <T> javax.xml.bind.JAXBElement<T> unmarshal​(org.w3c.dom.Node node,
                                                           java.lang.Class<T> expectedType)
                                                    throws javax.xml.bind.JAXBException
        Specified by:
        unmarshal in interface javax.xml.bind.Unmarshaller
        Overrides:
        unmarshal in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
        Throws:
        javax.xml.bind.JAXBException
      • unmarshal

        public final java.lang.Object unmarshal​(org.w3c.dom.Node node)
                                         throws javax.xml.bind.JAXBException
        Specified by:
        unmarshal in interface javax.xml.bind.Unmarshaller
        Throws:
        javax.xml.bind.JAXBException
      • unmarshal

        @Deprecated
        public final java.lang.Object unmarshal​(javax.xml.transform.sax.SAXSource source)
                                         throws javax.xml.bind.JAXBException
        Deprecated.
        Throws:
        javax.xml.bind.JAXBException
      • unmarshal0

        public final java.lang.Object unmarshal0​(org.w3c.dom.Node node,
                                                 JaxBeanInfo expectedType)
                                          throws javax.xml.bind.JAXBException
        Throws:
        javax.xml.bind.JAXBException
      • unmarshal

        public java.lang.Object unmarshal​(javax.xml.stream.XMLStreamReader reader)
                                   throws javax.xml.bind.JAXBException
        Specified by:
        unmarshal in interface javax.xml.bind.Unmarshaller
        Overrides:
        unmarshal in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
        Throws:
        javax.xml.bind.JAXBException
      • unmarshal

        public <T> javax.xml.bind.JAXBElement<T> unmarshal​(javax.xml.stream.XMLStreamReader reader,
                                                           java.lang.Class<T> expectedType)
                                                    throws javax.xml.bind.JAXBException
        Specified by:
        unmarshal in interface javax.xml.bind.Unmarshaller
        Overrides:
        unmarshal in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
        Throws:
        javax.xml.bind.JAXBException
      • unmarshal0

        public java.lang.Object unmarshal0​(javax.xml.stream.XMLStreamReader reader,
                                           JaxBeanInfo expectedType)
                                    throws javax.xml.bind.JAXBException
        Throws:
        javax.xml.bind.JAXBException
      • unmarshal

        public <T> javax.xml.bind.JAXBElement<T> unmarshal​(javax.xml.stream.XMLEventReader reader,
                                                           java.lang.Class<T> expectedType)
                                                    throws javax.xml.bind.JAXBException
        Specified by:
        unmarshal in interface javax.xml.bind.Unmarshaller
        Overrides:
        unmarshal in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
        Throws:
        javax.xml.bind.JAXBException
      • unmarshal

        public java.lang.Object unmarshal​(javax.xml.stream.XMLEventReader reader)
                                   throws javax.xml.bind.JAXBException
        Specified by:
        unmarshal in interface javax.xml.bind.Unmarshaller
        Overrides:
        unmarshal in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
        Throws:
        javax.xml.bind.JAXBException
      • unmarshal0

        public java.lang.Object unmarshal0​(java.io.InputStream input,
                                           JaxBeanInfo expectedType)
                                    throws javax.xml.bind.JAXBException
        Throws:
        javax.xml.bind.JAXBException
      • getProperty

        public java.lang.Object getProperty​(java.lang.String name)
                                     throws javax.xml.bind.PropertyException
        Specified by:
        getProperty in interface javax.xml.bind.Unmarshaller
        Overrides:
        getProperty in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
        Throws:
        javax.xml.bind.PropertyException
      • setProperty

        public void setProperty​(java.lang.String name,
                                java.lang.Object value)
                         throws javax.xml.bind.PropertyException
        Specified by:
        setProperty in interface javax.xml.bind.Unmarshaller
        Overrides:
        setProperty in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
        Throws:
        javax.xml.bind.PropertyException
      • setSchema

        public void setSchema​(javax.xml.validation.Schema schema)
        Specified by:
        setSchema in interface javax.xml.bind.Unmarshaller
        Overrides:
        setSchema in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
      • getSchema

        public javax.xml.validation.Schema getSchema()
        Specified by:
        getSchema in interface javax.xml.bind.Unmarshaller
        Overrides:
        getSchema in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
      • getAttachmentUnmarshaller

        public javax.xml.bind.attachment.AttachmentUnmarshaller getAttachmentUnmarshaller()
        Specified by:
        getAttachmentUnmarshaller in interface javax.xml.bind.Unmarshaller
        Overrides:
        getAttachmentUnmarshaller in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
      • setAttachmentUnmarshaller

        public void setAttachmentUnmarshaller​(javax.xml.bind.attachment.AttachmentUnmarshaller au)
        Specified by:
        setAttachmentUnmarshaller in interface javax.xml.bind.Unmarshaller
        Overrides:
        setAttachmentUnmarshaller in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
      • isValidating

        public boolean isValidating()
        Deprecated.
        since 2.0
        Specified by:
        isValidating in interface javax.xml.bind.Unmarshaller
        Overrides:
        isValidating in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
      • setValidating

        public void setValidating​(boolean validating)
        Deprecated.
        since 2.0
        Specified by:
        setValidating in interface javax.xml.bind.Unmarshaller
        Overrides:
        setValidating in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
      • setAdapter

        public <A extends javax.xml.bind.annotation.adapters.XmlAdapter> void setAdapter​(java.lang.Class<A> type,
                                                                                         A adapter)
        Specified by:
        setAdapter in interface javax.xml.bind.Unmarshaller
        Overrides:
        setAdapter in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
      • getAdapter

        public <A extends javax.xml.bind.annotation.adapters.XmlAdapter> A getAdapter​(java.lang.Class<A> type)
        Specified by:
        getAdapter in interface javax.xml.bind.Unmarshaller
        Overrides:
        getAdapter in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
      • createUnmarshalException

        public javax.xml.bind.UnmarshalException createUnmarshalException​(org.xml.sax.SAXException e)
        Overrides:
        createUnmarshalException in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
      • handleEvent

        public boolean handleEvent​(javax.xml.bind.ValidationEvent event)
        Default error handling behavior for Unmarshaller.
        Specified by:
        handleEvent in interface javax.xml.bind.ValidationEventHandler
      • getBeanInfo

        public <T> JaxBeanInfo<T> getBeanInfo​(java.lang.Class<T> clazz)
                                       throws javax.xml.bind.JAXBException
        Throws:
        javax.xml.bind.JAXBException
      • getListener

        public javax.xml.bind.Unmarshaller.Listener getListener()
        Specified by:
        getListener in interface javax.xml.bind.Unmarshaller
        Overrides:
        getListener in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
      • setListener

        public void setListener​(javax.xml.bind.Unmarshaller.Listener listener)
        Specified by:
        setListener in interface javax.xml.bind.Unmarshaller
        Overrides:
        setListener in class javax.xml.bind.helpers.AbstractUnmarshallerImpl
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        Overrides:
        finalize in class java.lang.Object
        Throws:
        java.lang.Throwable
      • close

        public void close()
                   throws java.io.IOException
        Must be called from same thread which created the UnmarshallerImpl instance.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.io.IOException