Class JAXBContextImpl


  • public final class JAXBContextImpl
    extends JAXBRIContext
    This class provides the implementation of JAXBContext.
    • Field Detail

      • marshallerPool

        public final com.sun.istack.Pool<javax.xml.bind.Marshaller> marshallerPool
        Pool of Marshallers.
      • unmarshallerPool

        public final com.sun.istack.Pool<javax.xml.bind.Unmarshaller> unmarshallerPool
      • nameBuilder

        public NameBuilder nameBuilder
        Used to assign indices to known names in this grammar. Reset to null once the build phase is completed.
      • nameList

        public final NameList nameList
        Keeps the list of known names. This field is set once the build pahse is completed.
      • c14nSupport

        protected final boolean c14nSupport
        true to reorder attributes lexicographically in preparation of the c14n support.
      • xmlAccessorFactorySupport

        public final boolean xmlAccessorFactorySupport
        Flag that user has provided a custom AccessorFactory for JAXB to use
      • retainPropertyInfo

        public final boolean retainPropertyInfo
        Store properties, so that they can be recovered in the run (is here because of JSON encoding of Jersey).
      • supressAccessorWarnings

        public final boolean supressAccessorWarnings
        Suppress reflection accessor warnings.
      • improvedXsiTypeHandling

        public final boolean improvedXsiTypeHandling
        Improved xsi type handling.
      • disableSecurityProcessing

        public final boolean disableSecurityProcessing
        Disable security processing.
      • fastBoot

        public final boolean fastBoot
        If true, we aim for faster JAXBContext instantiation performance, instead of going after efficient sustained unmarshalling/marshalling performance.
        Since:
        2.0.4
      • backupWithParentNamespace

        public java.lang.Boolean backupWithParentNamespace
        If true, despite the specification, unmarshall child element with parent namespace, if child namespace is not specified. The default value is null for System {code}com.sun.xml.bind.backupWithParentNamespace{code} property to be used, and false is assumed if it's not set either. Boolean
        Since:
        2.3.0
    • Method Detail

      • getXmlNsSet

        public java.util.Set<javax.xml.bind.annotation.XmlNs> getXmlNsSet()
        Returns declared XmlNs annotations (from package-level annotation XmlSchema
        Returns:
        set of all present XmlNs annotations
      • hasSwaRef

        public boolean hasSwaRef()
        True if this JAXBContext has XmlAttachmentRef.
        Specified by:
        hasSwaRef in class JAXBRIContext
      • getRuntimeTypeInfoSet

        public RuntimeTypeInfoSet getRuntimeTypeInfoSet()
        Description copied from class: JAXBRIContext
        Allows you to access the runtime model information of the JAXB XML/Java binding.

        This is useful for doing a deeper integration with the JAXB RI. For more information about the model, see https://jaxb2-reflection.dev.java.net/

        Specified by:
        getRuntimeTypeInfoSet in class JAXBRIContext
      • getElement

        public ElementBeanInfoImpl getElement​(java.lang.Class scope,
                                              javax.xml.namespace.QName name)
      • getBeanInfo

        public final JaxBeanInfo getBeanInfo​(java.lang.Object o)
        Gets the JaxBeanInfo object that can handle the given JAXB-bound object.

        This method traverses the base classes of the given object.

        Returns:
        null if c isn't a JAXB-bound class and fatal==false.
      • getBeanInfo

        public final JaxBeanInfo getBeanInfo​(java.lang.Object o,
                                             boolean fatal)
                                      throws javax.xml.bind.JAXBException
        Gets the JaxBeanInfo object that can handle the given JAXB-bound object.
        Parameters:
        fatal - if true, the failure to look up will throw an exception. Otherwise it will just return null.
        Throws:
        javax.xml.bind.JAXBException
      • getBeanInfo

        public final <T> JaxBeanInfo<T> getBeanInfo​(java.lang.Class<T> clazz)
        Gets the JaxBeanInfo object that can handle the given JAXB-bound class.

        This method doesn't look for base classes.

        Returns:
        null if c isn't a JAXB-bound class and fatal==false.
      • getBeanInfo

        public final <T> JaxBeanInfo<T> getBeanInfo​(java.lang.Class<T> clazz,
                                                    boolean fatal)
                                             throws javax.xml.bind.JAXBException
        Gets the JaxBeanInfo object that can handle the given JAXB-bound class.
        Parameters:
        fatal - if true, the failure to look up will throw an exception. Otherwise it will just return null.
        Throws:
        javax.xml.bind.JAXBException
      • selectRootLoader

        public final Loader selectRootLoader​(UnmarshallingContext.State state,
                                             TagName tag)
        Based on the tag name, determine what object to unmarshal, and then set a new object and its loader to the current unmarshaller state.
        Returns:
        null if the given name pair is not recognized.
      • getGlobalType

        public JaxBeanInfo getGlobalType​(javax.xml.namespace.QName name)
        Gets the JaxBeanInfo for the given named XML Schema type.
        Returns:
        null if the type name is not recognized. For schema languages other than XML Schema, this method always returns null.
      • getNearestTypeName

        public java.lang.String getNearestTypeName​(javax.xml.namespace.QName name)
        Finds a type name that this context recognizes which is "closest" to the given type name.

        This method is used for error recovery.

      • getValidRootNames

        public java.util.Set<javax.xml.namespace.QName> getValidRootNames()
        Returns the set of valid root tag names. For diagnostic use.
      • getUTF8NameTable

        public Encoded[] getUTF8NameTable()
      • getNumberOfLocalNames

        public int getNumberOfLocalNames()
      • getNumberOfElementNames

        public int getNumberOfElementNames()
      • getNumberOfAttributeNames

        public int getNumberOfAttributeNames()
      • createTransformerHandler

        public static javax.xml.transform.sax.TransformerHandler createTransformerHandler​(boolean disableSecureProcessing)
        Creates a new identity transformer.
      • createMarshaller

        public MarshallerImpl createMarshaller()
        Specified by:
        createMarshaller in class javax.xml.bind.JAXBContext
      • createUnmarshaller

        public UnmarshallerImpl createUnmarshaller()
        Specified by:
        createUnmarshaller in class javax.xml.bind.JAXBContext
      • createValidator

        public javax.xml.bind.Validator createValidator()
        Specified by:
        createValidator in class javax.xml.bind.JAXBContext
      • createJAXBIntrospector

        public javax.xml.bind.JAXBIntrospector createJAXBIntrospector()
        Overrides:
        createJAXBIntrospector in class javax.xml.bind.JAXBContext
      • generateEpisode

        public void generateEpisode​(javax.xml.transform.Result output)
        Description copied from class: JAXBRIContext
        Generates the episode file that represents the binding known to this JAXBContext, so that XJC can later do separate compilation.

        Episode file is really just a JAXB customization file, except that currently we use the RI-specific SCD to refer to schema components.

        Specified by:
        generateEpisode in class JAXBRIContext
        Parameters:
        output - This receives the generated episode file.
      • generateSchema

        public void generateSchema​(javax.xml.bind.SchemaOutputResolver outputResolver)
                            throws java.io.IOException
        Description copied from class: JAXBRIContext
        Generates the schema documents from the model.

        The caller can use the additionalElementDecls parameter to add element declarations to the generate schema. For example, if the JAX-RPC passes in the following entry: {foo}bar -> DeclaredType for java.lang.String then JAXB generates the following element declaration (in the schema document for the namespace "foo")" <xs:element name="bar" type="xs:string" /> This can be used for generating schema components necessary for WSDL.

        Specified by:
        generateSchema in class JAXBRIContext
        Parameters:
        outputResolver - this object controls the output to which schemas will be sent.
        Throws:
        java.io.IOException - if SchemaOutputResolver throws an IOException.
      • createBinder

        public <T> javax.xml.bind.Binder<T> createBinder​(java.lang.Class<T> domType)
        Overrides:
        createBinder in class javax.xml.bind.JAXBContext
      • createBinder

        public javax.xml.bind.Binder<org.w3c.dom.Node> createBinder()
        Overrides:
        createBinder in class javax.xml.bind.JAXBContext
      • getElementName

        public javax.xml.namespace.QName getElementName​(java.lang.Object o)
                                                 throws javax.xml.bind.JAXBException
        Description copied from class: JAXBRIContext
        If the given object is bound to an element in XML by JAXB, returns the element name.
        Specified by:
        getElementName in class JAXBRIContext
        Returns:
        null if the object is not bound to an element.
        Throws:
        javax.xml.bind.JAXBException - if the object is not known to this context.
      • getElementName

        public javax.xml.namespace.QName getElementName​(java.lang.Class o)
                                                 throws javax.xml.bind.JAXBException
        Description copied from class: JAXBRIContext
        Allows to retrieve the element name based on Class.
        Specified by:
        getElementName in class JAXBRIContext
        Returns:
        Throws:
        javax.xml.bind.JAXBException
      • getElementPropertyAccessor

        public RawAccessor getElementPropertyAccessor​(java.lang.Class wrapperBean,
                                                      java.lang.String nsUri,
                                                      java.lang.String localName)
                                               throws javax.xml.bind.JAXBException
        Description copied from class: JAXBRIContext
        Gets a RawAccessor for the specified element property of the specified wrapper bean class.

        This method is designed to assist the JAX-RPC RI fill in a wrapper bean (in the doc/lit/wrap mode.) In the said mode, a wrapper bean is supposed to only have properties that match elements, and for each element that appear in the content model there's one property.

        Therefore, this method takes a wrapper bean and a tag name that identifies a property on the given wrapper bean, then returns a RawAccessor that allows the caller to set/get a value from the property of the bean.

        This method is not designed for a performance. The caller is expected to cache the result.

        Specified by:
        getElementPropertyAccessor in class JAXBRIContext
        Returns:
        always return non-null valid accessor object.
        Throws:
        javax.xml.bind.JAXBException - if the specified wrapper bean is not bound by JAXB, or if it doesn't have an element property of the given name.
      • getKnownNamespaceURIs

        public java.util.List<java.lang.String> getKnownNamespaceURIs()
        Description copied from class: JAXBRIContext
        Gets the namespace URIs statically known to this JAXBContext.

        When JAXB is used to marshal into sub-trees, it declares these namespace URIs at each top-level element that it marshals. To avoid repeated namespace declarations at sub-elements, the application may declare those namespaces at a higher level.

        Specified by:
        getKnownNamespaceURIs in class JAXBRIContext
        Returns:
        always non-null.
      • getBuildId

        public java.lang.String getBuildId()
        Description copied from class: JAXBRIContext
        Gets the build information of the JAXB runtime.
        Specified by:
        getBuildId in class JAXBRIContext
        Returns:
        may be null, if the runtime is loaded by a class loader that doesn't support the access to the manifest informatino.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getXMIMEContentType

        public java.lang.String getXMIMEContentType​(java.lang.Object o)
        Gets the value of the xmime:contentType attribute on the given object, or null if for some reason it couldn't be found, including any error.
      • createAugmented

        public JAXBContextImpl createAugmented​(java.lang.Class<?> clazz)
                                        throws javax.xml.bind.JAXBException
        Creates a JAXBContextImpl that includes the specified additional classes.
        Throws:
        javax.xml.bind.JAXBException