Class XMLObjectProviderRegistry


  • public class XMLObjectProviderRegistry
    extends Object
    Configuration registry component for registering and retrieving implementation instances and related configuration relevant to working with XMLObjects, including builders, marshallers and unmarshallers.

    The registry instance to use would typically be retrieved from the ConfigurationService.

    • Field Detail

      • defaultProvider

        private static QName defaultProvider
        Default object provider.
      • log

        private org.slf4j.Logger log
        Logger.
      • configuredObjectProviders

        @Nonnull
        private final Map<QName,​Element> configuredObjectProviders
        Object provider configuration elements indexed by QName.
      • marshallerFactory

        private MarshallerFactory marshallerFactory
        Configured XMLObject marshaller factory.
      • unmarshallerFactory

        private UnmarshallerFactory unmarshallerFactory
        Configured XMLObject unmarshaller factory.
      • idAttributeNames

        @Nonnull
        private final Set<QName> idAttributeNames
        Configured set of attribute QNames which have been globally registered as having an ID type.
      • parserPool

        private ParserPool parserPool
        Configured parser pool.
    • Constructor Detail

      • XMLObjectProviderRegistry

        public XMLObjectProviderRegistry()
        Constructor.
    • Method Detail

      • getParserPool

        public ParserPool getParserPool()
        Get the currently configured ParserPool instance.
        Returns:
        the currently ParserPool
      • setParserPool

        public void setParserPool​(@Nullable
                                  ParserPool newParserPool)
        Set the currently configured ParserPool instance.
        Parameters:
        newParserPool - the new ParserPool instance to configure
      • getDefaultProviderQName

        public QName getDefaultProviderQName()
        Gets the QName for the object provider that will be used for XMLObjects that do not have a registered object provider.
        Returns:
        the QName for the default object provider
      • registerObjectProvider

        public void registerObjectProvider​(@Nonnull
                                           QName providerName,
                                           @Nonnull
                                           XMLObjectBuilder<?> builder,
                                           @Nonnull
                                           Marshaller marshaller,
                                           @Nonnull
                                           Unmarshaller unmarshaller)
        Adds an object provider to this configuration.
        Parameters:
        providerName - the name of the object provider, corresponding to the element name or type name that the builder, marshaller, and unmarshaller operate on
        builder - the builder for that given provider
        marshaller - the marshaller for the provider
        unmarshaller - the unmarshaller for the provider
      • deregisterObjectProvider

        public void deregisterObjectProvider​(@Nonnull
                                             QName key)
        Removes the builder, marshaller, and unmarshaller registered to the given key.
        Parameters:
        key - the key of the builder, marshaller, and unmarshaller to be removed
      • getBuilderFactory

        public XMLObjectBuilderFactory getBuilderFactory()
        Gets the XMLObject builder factory that has been configured with information from loaded configuration files.
        Returns:
        the XMLObject builder factory
      • getMarshallerFactory

        public MarshallerFactory getMarshallerFactory()
        Gets the XMLObject marshaller factory that has been configured with information from loaded configuration files.
        Returns:
        the XMLObject marshaller factory
      • getUnmarshallerFactory

        public UnmarshallerFactory getUnmarshallerFactory()
        Gets the XMLObject unmarshaller factory that has been configured with information from loaded configuration files.
        Returns:
        the XMLObject unmarshaller factory
      • registerIDAttribute

        public void registerIDAttribute​(QName attributeName)
        Register an attribute as having a type of ID.
        Parameters:
        attributeName - the QName of the ID attribute to be registered
      • deregisterIDAttribute

        public void deregisterIDAttribute​(QName attributeName)
        Deregister an attribute as having a type of ID.
        Parameters:
        attributeName - the QName of the ID attribute to be de-registered
      • isIDAttribute

        public boolean isIDAttribute​(QName attributeName)
        Determine whether a given attribute is registered as having an ID type.
        Parameters:
        attributeName - the QName of the attribute to be checked for ID type.
        Returns:
        true if attribute is registered as having an ID type.