Class DigesterLoader
- java.lang.Object
-
- org.apache.commons.digester3.binder.DigesterLoader
-
public final class DigesterLoader extends java.lang.Object
This class manages the creation of Digester instances from digester rules modules.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddRules(Digester digester)Add rules to an already created Digester instance, analyzing the digester annotations in the target class.RuleSetcreateRuleSet()Creates a newRuleSetinstance based on the current configuration.org.xml.sax.LocatorgetDocumentLocator()Gets the document locator associated with our parser.org.xml.sax.ErrorHandlergetErrorHandler()Return the error handler for this Digester.java.util.concurrent.ExecutorServicegetExecutorService()Returns the executor service used to run asynchronous parse method.java.util.Map<java.lang.String,java.net.URL>getRegistrations()Return the set of DTD URL registrations, keyed by public identifier.booleanisNamespaceAware()Return the "namespace aware" flag for parsers we create.booleanisValidating()Return the validating parser flag.booleanisXIncludeAware()Return the XInclude-aware flag for parsers we create;DigesternewDigester()DigesternewDigester(javax.xml.parsers.SAXParser parser)DigesternewDigester(javax.xml.parsers.SAXParser parser, Rules rules)DigesternewDigester(Rules rules)DigesternewDigester(org.xml.sax.XMLReader reader)Creates a newXMLReaderinstance that relies on the givenXMLReaderand the defaultRulesimplementation.DigesternewDigester(org.xml.sax.XMLReader reader, Rules rules)Creates a newXMLReaderinstance that relies on the givenXMLReaderand custom user defineRulesimplementation.static DigesterLoadernewLoader(java.lang.Iterable<RulesModule> rulesModules)Creates a newDigesterLoaderinstance given a collection ofRulesModuleinstance.static DigesterLoadernewLoader(RulesModule... rulesModules)Creates a newDigesterLoaderinstance given one or moreRulesModuleinstance.DigesterLoaderregister(java.lang.String publicId, java.lang.String entityURL)Convenience method that registers the string version of an entity URL instead of a URL version.DigesterLoaderregister(java.lang.String publicId, java.net.URL entityURL)Register the specified DTD URL for the specified public identifier.DigesterLoadersetClassLoader(java.lang.ClassLoader classLoader)Set the class loader to be used for instantiating application objects when required.DigesterLoadersetDocumentLocator(org.xml.sax.Locator locator)Sets the document locator associated with our parser.DigesterLoadersetEntityResolver(org.xml.sax.EntityResolver entityResolver)Set theEntityResolverused by SAX when resolving public id and system id.DigesterLoadersetErrorHandler(org.xml.sax.ErrorHandler errorHandler)Set the error handler for this Digester.DigesterLoadersetExecutorService(java.util.concurrent.ExecutorService executorService)Sets the executor service to run asynchronous parse method.DigesterLoadersetNamespaceAware(boolean namespaceAware)Set the "namespace aware" flag for parsers we create.DigesterLoadersetSchema(javax.xml.validation.Schema schema)Set the XML Schema to be used when parsing.DigesterLoadersetStackAction(StackAction stackAction)Sets the Object which will receive callbacks for every pop/push action on the default stack or named stacks.DigesterLoadersetSubstitutor(Substitutor substitutor)Sets theSubstitutorto be used to convert attributes and body text.DigesterLoadersetUseContextClassLoader(boolean useContextClassLoader)Determine whether to use the Context ClassLoader (the one found by callingThread.currentThread().getContextClassLoader()) to resolve/load classes that are defined in various rules.DigesterLoadersetValidating(boolean validating)Set the validating parser flag.DigesterLoadersetXIncludeAware(boolean xIncludeAware)Set the XInclude-aware flag for parsers we create.
-
-
-
Method Detail
-
newLoader
public static DigesterLoader newLoader(RulesModule... rulesModules)
Creates a newDigesterLoaderinstance given one or moreRulesModuleinstance.- Parameters:
rulesModules- The modules containing theRulebinding- Returns:
- A new
DigesterLoaderinstance
-
newLoader
public static DigesterLoader newLoader(java.lang.Iterable<RulesModule> rulesModules)
Creates a newDigesterLoaderinstance given a collection ofRulesModuleinstance.- Parameters:
rulesModules- The modules containing theRulebinding- Returns:
- A new
DigesterLoaderinstance
-
setUseContextClassLoader
public DigesterLoader setUseContextClassLoader(boolean useContextClassLoader)
Determine whether to use the Context ClassLoader (the one found by callingThread.currentThread().getContextClassLoader()) to resolve/load classes that are defined in various rules. If not using Context ClassLoader, then the class-loading defaults to using the calling-class' ClassLoader.- Parameters:
useContextClassLoader- determines whether to use Context ClassLoader.- Returns:
- This loader instance, useful to chain methods.
-
setClassLoader
public DigesterLoader setClassLoader(java.lang.ClassLoader classLoader)
Set the class loader to be used for instantiating application objects when required.- Parameters:
classLoader- the class loader to be used for instantiating application objects when required.- Returns:
- This loader instance, useful to chain methods.
-
setSubstitutor
public DigesterLoader setSubstitutor(Substitutor substitutor)
Sets theSubstitutorto be used to convert attributes and body text.- Parameters:
substitutor- the Substitutor to be used to convert attributes and body text or null if not substitution of these values is to be performed.- Returns:
- This loader instance, useful to chain methods.
-
setNamespaceAware
public DigesterLoader setNamespaceAware(boolean namespaceAware)
Set the "namespace aware" flag for parsers we create.- Parameters:
namespaceAware- The new "namespace aware" flag- Returns:
- This loader instance, useful to chain methods.
-
isNamespaceAware
public boolean isNamespaceAware()
Return the "namespace aware" flag for parsers we create.- Returns:
- true, if the "namespace aware" flag for parsers we create, false otherwise.
-
setXIncludeAware
public DigesterLoader setXIncludeAware(boolean xIncludeAware)
Set the XInclude-aware flag for parsers we create. This additionally requires namespace-awareness.- Parameters:
xIncludeAware- The new XInclude-aware flag- Returns:
- This loader instance, useful to chain methods.
- See Also:
setNamespaceAware(boolean)
-
isXIncludeAware
public boolean isXIncludeAware()
Return the XInclude-aware flag for parsers we create;- Returns:
- true, if the XInclude-aware flag for parsers we create is set, false otherwise
-
setValidating
public DigesterLoader setValidating(boolean validating)
Set the validating parser flag.- Parameters:
validating- The new validating parser flag.- Returns:
- This loader instance, useful to chain methods.
-
isValidating
public boolean isValidating()
Return the validating parser flag.- Returns:
- true, if the validating parser flag is set, false otherwise
-
setSchema
public DigesterLoader setSchema(javax.xml.validation.Schema schema)
Set the XML Schema to be used when parsing.- Parameters:
schema- TheSchemainstance to use.- Returns:
- This loader instance, useful to chain methods.
-
register
public DigesterLoader register(java.lang.String publicId, java.net.URL entityURL)
Register the specified DTD URL for the specified public identifier. This must be called before the first call to
parse().Digestercontains an internalEntityResolverimplementation. This mapsPUBLICID'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 classloader) for DTDs. This allows the performance advantage of using a local version without having to ensure everySYSTEMURI on every processed xml document is local. This implementation provides only basic functionality. If more sophisticated features are required, usingsetEntityResolver(EntityResolver)to set a custom resolver is recommended.Note: This method will have no effect when a custom
EntityResolverhas been set. (Setting a customEntityResolveroverrides the internal implementation.)- Parameters:
publicId- Public identifier of the DTD to be resolvedentityURL- The URL to use for reading this DTD- Returns:
- This loader instance, useful to chain methods.
-
register
public DigesterLoader register(java.lang.String publicId, java.lang.String entityURL)
Convenience method that registers the string version of an entity URL instead of a URL version.
- Parameters:
publicId- Public identifier of the entity to be resolvedentityURL- The URL to use for reading this entity- Returns:
- This loader instance, useful to chain methods.
-
getRegistrations
public java.util.Map<java.lang.String,java.net.URL> getRegistrations()
Return the set of DTD URL registrations, keyed by public identifier.- Returns:
- the set of DTD URL registrations.
-
setEntityResolver
public DigesterLoader setEntityResolver(org.xml.sax.EntityResolver entityResolver)
Set theEntityResolverused by SAX when resolving public id and system id. This must be called before the first call toparse().- Parameters:
entityResolver- a class that implement theEntityResolverinterface.- Returns:
- This loader instance, useful to chain methods.
-
setStackAction
public DigesterLoader setStackAction(StackAction stackAction)
Sets the Object which will receive callbacks for every pop/push action on the default stack or named stacks.- Parameters:
stackAction- the Object which will receive callbacks for every pop/push action on the default stack or named stacks.- Returns:
- This loader instance, useful to chain methods.
-
getExecutorService
public java.util.concurrent.ExecutorService getExecutorService()
Returns the executor service used to run asynchronous parse method.- Returns:
- the executor service used to run asynchronous parse method
- Since:
- 3.1
-
setExecutorService
public DigesterLoader setExecutorService(java.util.concurrent.ExecutorService executorService)
Sets the executor service to run asynchronous parse method.- Parameters:
executorService- the executor service to run asynchronous parse method- Returns:
- This loader instance, useful to chain methods.
- Since:
- 3.1
-
getErrorHandler
public org.xml.sax.ErrorHandler getErrorHandler()
Return the error handler for this Digester.- Returns:
- the error handler for this Digester.
- Since:
- 3.2
-
setErrorHandler
public DigesterLoader setErrorHandler(org.xml.sax.ErrorHandler errorHandler)
Set the error handler for this Digester.- Parameters:
errorHandler- The new error handler- Returns:
- This loader instance, useful to chain methods.
- Since:
- 3.2
-
getDocumentLocator
public org.xml.sax.Locator getDocumentLocator()
Gets the document locator associated with our parser.- Returns:
- the Locator supplied by the document parser
- Since:
- 3.2
-
setDocumentLocator
public DigesterLoader setDocumentLocator(org.xml.sax.Locator locator)
Sets the document locator associated with our parser.- Parameters:
locator- the document locator associated with our parser.- Returns:
- This loader instance, useful to chain methods.
- Since:
- 3.2
-
newDigester
public Digester newDigester()
- Returns:
- a new
Digesterinstance
-
newDigester
public Digester newDigester(Rules rules)
-
newDigester
public Digester newDigester(javax.xml.parsers.SAXParser parser)
Creates a newDigesterinstance that relies on the givenSAXParserand the defaultRulesimplementation.- Parameters:
parser- the user definedSAXParser- Returns:
- a new
Digesterinstance
-
newDigester
public Digester newDigester(javax.xml.parsers.SAXParser parser, Rules rules)
-
newDigester
public Digester newDigester(org.xml.sax.XMLReader reader)
Creates a newXMLReaderinstance that relies on the givenXMLReaderand the defaultRulesimplementation.- Parameters:
reader- The user definedXMLReader- Returns:
- a new
Digesterinstance
-
newDigester
public Digester newDigester(org.xml.sax.XMLReader reader, Rules rules)
Creates a newXMLReaderinstance that relies on the givenXMLReaderand custom user defineRulesimplementation.
-
addRules
public void addRules(Digester digester)
Add rules to an already created Digester instance, analyzing the digester annotations in the target class.- Parameters:
digester- the Digester instance reference.
-
createRuleSet
public RuleSet createRuleSet()
Creates a newRuleSetinstance based on the current configuration.- Returns:
- A new
RuleSetinstance based on the current configuration.
-
-