Class AbstractXmlReadHandler
- java.lang.Object
-
- org.pentaho.reporting.libraries.xmlns.parser.AbstractXmlReadHandler
-
- All Implemented Interfaces:
XmlReadHandler
- Direct Known Subclasses:
IgnoreAnyChildReadHandler
,PropertiesReadHandler
,StringReadHandler
public abstract class AbstractXmlReadHandler extends Object implements XmlReadHandler
A base class for implementing anXmlReadHandler
. This class takes care of all the delegation management.
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractXmlReadHandler()
Creates a new handler.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
characters(char[] ch, int start, int length)
This method is called to process the character data between element tags.protected Map
deriveParseParameters()
Creates a working copy of the current parse state.protected void
doneParsing()
Done parsing.void
endElement(String uri, String tagName)
This method is called at the end of an element.protected XmlReadHandler
getHandlerForChild(String uri, String tagName, Attributes atts)
Returns the handler for a child element.Locator
getLocator()
Returns the locator as provided by the XML parser.RootXmlReadHandler
getRootHandler()
Returns the root handler for the parsing.String
getTagName()
Returns the tag name.String
getUri()
Returns the uri of the element.void
init(RootXmlReadHandler rootHandler, String uri, String tagName)
Initialises the handler.protected boolean
isSameNamespace(String namespaceURI)
Checks whether the given url denotes the same namespace as the element's namespace.protected Object
performExternalParsing(String file, Class targetClass)
Parses an external file using LibLoader and returns the parsed result as an object of typetargetClass
.protected Object
performExternalParsing(String file, Class targetClass, Map map)
Parses an external file using LibLoader and returns the parsed result as an object of typetargetClass
.void
startElement(String uri, String tagName, Attributes attrs)
This method is called at the start of an element.protected void
startParsing(Attributes attrs)
Starts parsing.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.pentaho.reporting.libraries.xmlns.parser.XmlReadHandler
getObject
-
-
-
-
Method Detail
-
init
public void init(RootXmlReadHandler rootHandler, String uri, String tagName) throws SAXException
Initialises the handler.- Specified by:
init
in interfaceXmlReadHandler
- Parameters:
rootHandler
- the root handler.tagName
- the tag name.uri
- the namespace uri.- Throws:
SAXException
- if an parser-error occured.
-
startElement
public final void startElement(String uri, String tagName, Attributes attrs) throws SAXException
This method is called at the start of an element.- Specified by:
startElement
in interfaceXmlReadHandler
- Parameters:
tagName
- the tag name.attrs
- the attributes.uri
- the namespace uri.- Throws:
SAXException
- if there is a parsing error.
-
characters
public void characters(char[] ch, int start, int length) throws SAXException
This method is called to process the character data between element tags.- Specified by:
characters
in interfaceXmlReadHandler
- Parameters:
ch
- the character buffer.start
- the start index.length
- the length.- Throws:
SAXException
- if there is a parsing error.
-
endElement
public final void endElement(String uri, String tagName) throws SAXException
This method is called at the end of an element.- Specified by:
endElement
in interfaceXmlReadHandler
- Parameters:
tagName
- the tag name.uri
- the namespace uri.- Throws:
SAXException
- if there is a parsing error.
-
startParsing
protected void startParsing(Attributes attrs) throws SAXException
Starts parsing.- Parameters:
attrs
- the attributes.- Throws:
SAXException
- if there is a parsing error.
-
doneParsing
protected void doneParsing() throws SAXException
Done parsing.- Throws:
SAXException
- if there is a parsing error.
-
isSameNamespace
protected boolean isSameNamespace(String namespaceURI)
Checks whether the given url denotes the same namespace as the element's namespace.- Parameters:
namespaceURI
- the namespace that should be tested.- Returns:
- true, if the namespace matches the element's namespace,false otherwise.
-
getHandlerForChild
protected XmlReadHandler getHandlerForChild(String uri, String tagName, Attributes atts) throws SAXException
Returns the handler for a child element.- Parameters:
uri
- the URI of the namespace of the current element.tagName
- the tag name.atts
- the attributes.- Returns:
- the handler or null, if the tagname is invalid.
- Throws:
SAXException
- if there is a parsing error.
-
getTagName
public String getTagName()
Returns the tag name.- Returns:
- the tag name.
-
getUri
public String getUri()
Returns the uri of the element. The URI identifies the namespace.- Returns:
- the element's URI.
-
getRootHandler
public RootXmlReadHandler getRootHandler()
Returns the root handler for the parsing.- Returns:
- the root handler.
-
getLocator
public Locator getLocator()
Returns the locator as provided by the XML parser. This method may return null if the XML parser has no locator support.- Returns:
- the locator or null.
-
performExternalParsing
protected Object performExternalParsing(String file, Class targetClass) throws ParseException, org.pentaho.reporting.libraries.resourceloader.ResourceLoadingException
Parses an external file using LibLoader and returns the parsed result as an object of typetargetClass
. The file is given as relative pathname (relative to the current source file). The current helper-methods are used as parse-parameters for the external parsing.- Parameters:
file
- the file to be parsed.targetClass
- the target type of the parse operation.- Returns:
- the result, never null.
- Throws:
ParseException
- if parsing the result failed for some reason.org.pentaho.reporting.libraries.resourceloader.ResourceLoadingException
- if there was an IO error loading the resource.- See Also:
deriveParseParameters()
,performExternalParsing(String, Class, Map)
-
performExternalParsing
protected Object performExternalParsing(String file, Class targetClass, Map map) throws ParseException, org.pentaho.reporting.libraries.resourceloader.ResourceLoadingException
Parses an external file using LibLoader and returns the parsed result as an object of typetargetClass
. The file is given as relative pathname (relative to the current source file). The current helper-methods are used as parse-parameters for the external parsing.- Parameters:
file
- the file to be parsed.targetClass
- the target type of the parse operation.map
- the map of parse parameters.- Returns:
- the result, never null.
- Throws:
ParseException
- if parsing the result failed for some reason.org.pentaho.reporting.libraries.resourceloader.ResourceLoadingException
- if there was an IO error loading the resource.- See Also:
deriveParseParameters()
-
deriveParseParameters
protected Map deriveParseParameters()
Creates a working copy of the current parse state.- Returns:
- the derived parse-parameters.
-
-