Class XMLObjectProviderRegistry

java.lang.Object
org.opensaml.core.xml.config.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 Details

    • 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.
    • builderFactory

      private XMLObjectBuilderFactory builderFactory
      Configured XMLObject builder factory.
    • 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 Details

    • XMLObjectProviderRegistry

      public XMLObjectProviderRegistry()
      Constructor.
  • Method Details

    • 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.