Class CatalogResolver
- java.lang.Object
-
- org.apache.commons.configuration2.resolver.CatalogResolver
-
- All Implemented Interfaces:
org.xml.sax.EntityResolver
public class CatalogResolver extends java.lang.Object implements org.xml.sax.EntityResolver
Thin wrapper around xml commons CatalogResolver to allow list of catalogs to be provided.- Since:
- 1.7
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
CatalogResolver.Catalog
Overrides the Catalog implementation to use the underlying FileSystem.static class
CatalogResolver.CatalogManager
Extends the CatalogManager to make the FileSystem and base directory accessible.
-
Field Summary
Fields Modifier and Type Field Description private static int
DEBUG_ALL
Debug everything.private static int
DEBUG_NONE
Debug nothing.private static int
DEBUG_NORMAL
Normal debug setting.private FileSystem
fs
The FileSystem in use.private ConfigurationLogger
log
Stores the logger.private CatalogResolver.CatalogManager
manager
The CatalogManagerprivate org.apache.xml.resolver.tools.CatalogResolver
resolver
The CatalogResolver
-
Constructor Summary
Constructors Constructor Description CatalogResolver()
Constructs the CatalogResolver
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ConfigurationLogger
getLogger()
Gets the logger used by this configuration object.private org.apache.xml.resolver.tools.CatalogResolver
getResolver()
private void
initLogger(ConfigurationLogger log)
Initializes the logger.private static java.net.URL
locate(FileSystem fs, java.lang.String basePath, java.lang.String name)
Locates a given file.org.xml.sax.InputSource
resolveEntity(java.lang.String publicId, java.lang.String systemId)
Implements theresolveEntity
method for the SAX interface.void
setBaseDir(java.lang.String baseDir)
Sets the base path.void
setCatalogFiles(java.lang.String catalogs)
Sets the list of catalog file namesvoid
setDebug(boolean debug)
Enables debug logging of xml-commons Catalog processing.void
setFileSystem(FileSystem fileSystem)
Sets the FileSystem.void
setInterpolator(ConfigurationInterpolator ci)
Sets theConfigurationInterpolator
.void
setLogger(ConfigurationLogger log)
Allows setting the logger to be used by this object.
-
-
-
Field Detail
-
DEBUG_ALL
private static final int DEBUG_ALL
Debug everything.- See Also:
- Constant Field Values
-
DEBUG_NORMAL
private static final int DEBUG_NORMAL
Normal debug setting.- See Also:
- Constant Field Values
-
DEBUG_NONE
private static final int DEBUG_NONE
Debug nothing.- See Also:
- Constant Field Values
-
manager
private final CatalogResolver.CatalogManager manager
The CatalogManager
-
fs
private FileSystem fs
The FileSystem in use.
-
resolver
private org.apache.xml.resolver.tools.CatalogResolver resolver
The CatalogResolver
-
log
private ConfigurationLogger log
Stores the logger.
-
-
Method Detail
-
locate
private static java.net.URL locate(FileSystem fs, java.lang.String basePath, java.lang.String name)
Locates a given file. This implementation delegates to the corresponding method inFileLocatorUtils
.- Parameters:
fs
- theFileSystem
basePath
- the base pathname
- the file name- Returns:
- the URL pointing to the file
-
getLogger
public ConfigurationLogger getLogger()
Gets the logger used by this configuration object.- Returns:
- the logger
-
getResolver
private org.apache.xml.resolver.tools.CatalogResolver getResolver()
-
initLogger
private void initLogger(ConfigurationLogger log)
Initializes the logger. Checks for null parameters.- Parameters:
log
- the new logger
-
resolveEntity
public org.xml.sax.InputSource resolveEntity(java.lang.String publicId, java.lang.String systemId) throws org.xml.sax.SAXException
Implements the
resolveEntity
method for the SAX interface.Presented with an optional public identifier and a system identifier, this function attempts to locate a mapping in the catalogs.
If such a mapping is found, the resolver attempts to open the mapped value as an InputSource and return it. Exceptions are ignored and null is returned if the mapped value cannot be opened as an input source.
If no mapping is found (or an error occurs attempting to open the mapped value as an input source), null is returned and the system will use the specified system identifier as if no entityResolver was specified.
- Specified by:
resolveEntity
in interfaceorg.xml.sax.EntityResolver
- Parameters:
publicId
- The public identifier for the entity in question. This may be null.systemId
- The system identifier for the entity in question. XML requires a system identifier on all external entities, so this value is always specified.- Returns:
- An InputSource for the mapped identifier, or null.
- Throws:
org.xml.sax.SAXException
- if an error occurs.
-
setBaseDir
public void setBaseDir(java.lang.String baseDir)
Sets the base path.- Parameters:
baseDir
- The base path String.
-
setCatalogFiles
public void setCatalogFiles(java.lang.String catalogs)
Sets the list of catalog file names- Parameters:
catalogs
- The delimited list of catalog files.
-
setDebug
public void setDebug(boolean debug)
Enables debug logging of xml-commons Catalog processing.- Parameters:
debug
- True if debugging should be enabled, false otherwise.
-
setFileSystem
public void setFileSystem(FileSystem fileSystem)
Sets the FileSystem.- Parameters:
fileSystem
- The FileSystem.
-
setInterpolator
public void setInterpolator(ConfigurationInterpolator ci)
Sets theConfigurationInterpolator
.- Parameters:
ci
- theConfigurationInterpolator
-
setLogger
public void setLogger(ConfigurationLogger log)
Allows setting the logger to be used by this object. This method makes it possible for clients to exactly control logging behavior. Per default a logger is set that will ignore all log messages. Derived classes that want to enable logging should call this method during their initialization with the logger to be used. Passing in null as argument disables logging.- Parameters:
log
- the new logger
-
-