Package org.apache.commons.configuration2.resolver

# Class DefaultEntityResolver

java.lang.Object
org.apache.commons.configuration2.resolver.DefaultEntityResolver

All Implemented Interfaces:
  `EntityRegistry`, `EntityResolver`

public class DefaultEntityResolver extends Object implements EntityResolver, EntityRegistry
The DefaultEntityResolver used by XML Configurations.

Since:
  1.7

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DefaultEntityResolver()`
  Constructs a new instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Map<String,URL>`
  `getRegisteredEntities()`
  Gets a map with the entity IDs that have been registered using the `registerEntityId()` method.
  `void`
  `registerEntityId(String publicId, URL entityURL)`
  Registers the specified URL for the specified public identifier.
  `InputSource`
  `resolveEntity(String publicId, String systemId)`
  Resolves the requested external entity.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### DefaultEntityResolver

    public DefaultEntityResolver()
    Constructs a new instance.

- ## Method Details

  - ### getRegisteredEntities

    public Map<String,URL> getRegisteredEntities()
    Gets a map with the entity IDs that have been registered using the `registerEntityId()` method.
    Specified by:
      `getRegisteredEntities` in interface `EntityRegistry`
    Returns:
      a map with the registered entity IDs

  - ### registerEntityId

    public void registerEntityId(String publicId, URL entityURL)

    Registers the specified URL for the specified public identifier.

    This implementation maps `PUBLICID`'s to URLs (from which the resource will be loaded). A common use case for this method is to register local URLs (possibly computed at runtime by a class loader) for DTDs and Schemas. This allows the performance advantage of using a local version without having to ensure every `SYSTEM` URI on every processed XML document is local. This implementation provides only basic functionality. If more sophisticated features are required, either calling `XMLConfiguration.setDocumentBuilder(DocumentBuilder)` to set a custom `DocumentBuilder` (which also can be initialized with a custom `EntityResolver`) or creating a custom entity resolver and registering it with the XMLConfiguration is recommended.

    Specified by:
      `registerEntityId` in interface `EntityRegistry`
    Parameters:
      `publicId` - Public identifier of the Entity to be resolved
      `entityURL` - The URL to use for reading this Entity
    Throws:
      `IllegalArgumentException` - if the public ID is undefined

  - ### resolveEntity

    public InputSource resolveEntity(String publicId, String systemId) throws SAXException
    Resolves the requested external entity. This is the default implementation of the `EntityResolver` interface. It checks the passed in public ID against the registered entity IDs and uses a local URL if possible.
    Specified by:
      `resolveEntity` in interface `EntityResolver`
    Parameters:
      `publicId` - the public identifier of the entity being referenced
      `systemId` - the system identifier of the entity being referenced
    Returns:
      an input source for the specified entity
    Throws:
      `SAXException` - if a parsing exception occurs