Class DigesterDefinitionsReader
- All Implemented Interfaces:
DefinitionsReader
- Direct Known Subclasses:
CompatibilityDigesterDefinitionsReader
Definition objects from
an XML InputStream using Digester.
This DefinitionsReader implementation expects the source to be
passed as an InputStream. It parses XML data from the source
and builds a Map of Definition objects.
The Digester object can be configured by passing in initialization
parameters. Currently the only parameter that is supported is the
validating parameter. This value is set to false
by default. To enable DTD validation for XML Definition files, give the init
method a parameter with a key of
org.apache.tiles.definition.digester.DigesterDefinitionsReader.PARSER_VALIDATE
and a value of "true".
The Definition objects are stored internally in a Map. The Map is stored as
an instance variable rather than a local variable in the read
method. This means that instances of this class are not
thread-safe and access by multiple threads must be synchronized.
- Version:
- $Rev: 990237 $ $Date: 2010-08-28 05:33:35 +1000 (Sat, 28 Aug 2010) $
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclassDigester rule to manage assignment of a nested definition in an attribute value.static classDigester rule to manage attribute filling.static classDigester rule to manage definition filling.static classDigester rule to manage assignment of the attribute to the parent element. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final StringThe handler to create definitions.protected org.apache.commons.digester.DigesterDigesterobject used to read Definition data from the source.protected static final StringThe handler to create list attributes.static final StringDigester validation parameter name.protected static final StringThe handler to create attributes.protected String[]The set of public identifiers, and corresponding resource names for the versions of the configuration file DTDs we know about. -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new instance of DigesterDefinitionsReader. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddDefinition(Definition definition) Adds a newDefinitionto the internal Map or replaces an existing one.protected StringgetNextUniqueDefinitionName(Map<String, Definition> definitions) Create a unique definition name usable to store anonymous definitions.protected String[]Returns the registrations for local DTDs.protected voidinitSyntax(org.apache.commons.digester.Digester digester) Initialised the syntax for reading XML files containing Tiles definitions.Readsobjects from a source.DefinitionvoidsetValidating(boolean validating) Sets the validation of XML files.
-
Field Details
-
PARSER_VALIDATE_PARAMETER_NAME
Digester validation parameter name.- See Also:
-
DEFINITION_HANDLER_CLASS
The handler to create definitions.- Since:
- 2.1.0
-
PUT_ATTRIBUTE_HANDLER_CLASS
The handler to create attributes.- Since:
- 2.1.0
-
LIST_HANDLER_CLASS
The handler to create list attributes.- Since:
- 2.1.0
-
digester
protected org.apache.commons.digester.Digester digesterDigesterobject used to read Definition data from the source. -
registrations
The set of public identifiers, and corresponding resource names for the versions of the configuration file DTDs we know about. There MUST be an even number of Strings in this list!
-
-
Constructor Details
-
DigesterDefinitionsReader
public DigesterDefinitionsReader()Creates a new instance of DigesterDefinitionsReader.
-
-
Method Details
-
setValidating
public void setValidating(boolean validating) Sets the validation of XML files.- Parameters:
validating-truemeans that XML validation is turned on.falseotherwise.- Since:
- 3.3.0
-
read
Readsobjects from a source. Implementations should publish what type of source object is expected.Definition- Specified by:
readin interfaceDefinitionsReader- Parameters:
source- TheInputStreamsource from which definitions will be read.- Returns:
- a Map of
Definitionobjects read from the source. - Throws:
DefinitionsFactoryException- If the source is invalid or an error occurs when reading definitions.
-
initSyntax
protected void initSyntax(org.apache.commons.digester.Digester digester) Initialised the syntax for reading XML files containing Tiles definitions.- Parameters:
digester- The digester to initialize.
-
addDefinition
Adds a newDefinitionto the internal Map or replaces an existing one.- Parameters:
definition- The Definition object to be added.
-
getRegistrations
Returns the registrations for local DTDs.- Returns:
- An array containing the locations for registrations of local DTDs.
- Since:
- 2.1.0
-
getNextUniqueDefinitionName
Create a unique definition name usable to store anonymous definitions.- Parameters:
definitions- The already created definitions.- Returns:
- The unique definition name to be used to store the definition.
- Since:
- 2.1.0
-