Class MarshallerFactory


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

      • log

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

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

      • MarshallerFactory

        public MarshallerFactory()
        Constructor.
    • Method Detail

      • getMarshaller

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

        @Nullable
        public Marshaller getMarshaller​(@Nonnull
                                        XMLObject xmlObject)
        Retrieves the marshaller for the given XMLObject. 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 marshaller registered under it.
        Parameters:
        xmlObject - the XMLObject to retrieve the marshaller for
        Returns:
        the marshaller that can be used for the given XMLObject
      • getMarshallers

        @Nonnull
        public Map<QName,​Marshaller> getMarshallers()
        Gets an immutable listing of all the Marshallers currently registered.
        Returns:
        a listing of all the Marshallers currently registered
      • registerMarshaller

        public void registerMarshaller​(@Nonnull
                                       QName key,
                                       @Nonnull
                                       Marshaller marshaller)
        Registers a Marshaller with this factory. If a Marshaller exist for the element name given it is replaced with the given marshaller.
        Parameters:
        key - the key the marshaller was registered under
        marshaller - the Marshaller
      • deregisterMarshaller

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