Class JAXBContextImpl


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

      • marshallerPool

        public final Pool<jakarta.xml.bind.Marshaller> marshallerPool
        Pool of Marshallers.
      • unmarshallerPool

        public final Pool<jakarta.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 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 org.glassfish.jaxb.backupWithParentNamespace property to be used, and false is assumed if it's not set either. Boolean
        Since:
        2.3.0
      • maxErrorsCount

        public final int maxErrorsCount
        The maximum number of errors unmarshall operation reports. Use negative value to report all errors. The default value is 10.
        Since:
        2.3.3
    • Method Detail

      • getXmlNsSet

        public Set<jakarta.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
      • getBeanInfo

        public final JaxBeanInfo getBeanInfo​(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​(Object o,
                                             boolean fatal)
                                      throws jakarta.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:
        jakarta.xml.bind.JAXBException
      • getBeanInfo

        public final <T> JaxBeanInfo<T> getBeanInfo​(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​(Class<T> clazz,
                                                    boolean fatal)
                                             throws jakarta.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:
        jakarta.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​(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 String getNearestTypeName​(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 Set<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 TransformerHandler createTransformerHandler​(boolean disableSecureProcessing)
        Creates a new identity transformer.
      • createMarshaller

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

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

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

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

        public void generateEpisode​(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​(jakarta.xml.bind.SchemaOutputResolver outputResolver)
                            throws 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:
        IOException - if SchemaOutputResolver throws an IOException.
      • createBinder

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

        public jakarta.xml.bind.Binder<Node> createBinder()
        Overrides:
        createBinder in class jakarta.xml.bind.JAXBContext
      • getElementName

        public QName getElementName​(Object o)
                             throws jakarta.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:
        jakarta.xml.bind.JAXBException - if the object is not known to this context.
      • getElementName

        public QName getElementName​(Class o)
                             throws jakarta.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:
        jakarta.xml.bind.JAXBException
      • getElementPropertyAccessor

        public RawAccessor getElementPropertyAccessor​(Class wrapperBean,
                                                      String nsUri,
                                                      String localName)
                                               throws jakarta.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:
        jakarta.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 List<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 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.
      • getXMIMEContentType

        public String getXMIMEContentType​(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​(Class<?> clazz)
                                        throws jakarta.xml.bind.JAXBException
        Creates a JAXBContextImpl that includes the specified additional classes.
        Throws:
        jakarta.xml.bind.JAXBException