Class UnmarshallerFactory


  • public class UnmarshallerFactory
    extends Object
    This thread-safe factory creates Unmarshallers that can be used to convert W3C DOM elements into XMLObjects. Unmarshallers are stored and retrieved by a QName key. This key is either the XML Schema Type or element QName of the XML element being unmarshalled.
    • Field Detail

      • log

        private final org.slf4j.Logger log
        Class logger.
      • unmarshallers

        private final Map<QName,​Unmarshaller> unmarshallers
        Map of unmarshallers to the elements they are for.
    • Constructor Detail

      • UnmarshallerFactory

        public UnmarshallerFactory()
        Constructor.
    • Method Detail

      • getUnmarshaller

        @Nullable
        public Unmarshaller getUnmarshaller​(@Nullable
                                            QName key)
        Gets the Unmarshaller for a particular element or null if no unmarshaller is registered for an element.
        Parameters:
        key - the key the unmarshaller was registered under
        Returns:
        the Unmarshaller
      • getUnmarshaller

        @Nullable
        public Unmarshaller getUnmarshaller​(@Nullable
                                            Element domElement)
        Retrieves the unmarshaller for the given element. The schema type, if present, is tried first as the key with the element QName used if no schema type is present or does not have a unmarshaller registered under it.
        Parameters:
        domElement - the element to retrieve the unmarshaller for
        Returns:
        the unmarshaller for the XMLObject the given element can be unmarshalled into
      • getUnmarshallers

        @Nonnull
        public Map<QName,​Unmarshaller> getUnmarshallers()
        Gets an immutable listing of all the Unarshallers currently registered.
        Returns:
        a listing of all the Unmarshallers currently registered
      • registerUnmarshaller

        public void registerUnmarshaller​(@Nonnull
                                         QName key,
                                         @Nonnull
                                         Unmarshaller unmarshaller)
        Registers an Unmarshaller with this factory. If an Unmarshaller exist for the Qname given it is replaced with the given unmarshaller.
        Parameters:
        key - the key the unmarshaller was registered under
        unmarshaller - the Unmarshaller
      • deregisterUnmarshaller

        @Nullable
        public Unmarshaller deregisterUnmarshaller​(@Nonnull
                                                   QName key)
        Deregisters the unmarshaller for the given element.
        Parameters:
        key - the key the unmarshaller was registered under
        Returns:
        the Unmarshaller previously registered or null