Class SaxDigesterHandler
- java.lang.Object
-
- org.xml.sax.helpers.DefaultHandler
-
- org.onemind.commons.java.xml.digest.SaxDigesterHandler
-
- All Implemented Interfaces:
org.xml.sax.ContentHandler
,org.xml.sax.DTDHandler
,org.xml.sax.EntityResolver
,org.xml.sax.ErrorHandler
public class SaxDigesterHandler extends org.xml.sax.helpers.DefaultHandler
The SaxDigesterHandler use digesters to digest the elements in the xml. The digesters can be added using the addDigester(). By default the sequential digester list is used.- Version:
- $Id: SaxDigesterHandler.java,v 1.3 2005/01/30 06:31:37 thlee Exp $ $Name: $
- Author:
- TiongHiang Lee (thlee@thinklient.org)
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map
_digesters
the map contains subdigestersprivate java.util.List
_elementPath
keep track of the path for current elementprivate static java.util.logging.Logger
_logger
the logger *
-
Constructor Summary
Constructors Constructor Description SaxDigesterHandler()
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addDigester(java.lang.String path, ElementDigester dig)
Add a digester for the pathvoid
addDigester(ElementDigester dig)
Adding a digester to the root pathvoid
addSubDigester(java.lang.String prefixPath, ElementDigester dig)
Add a sub digester at a path of current path + prefixPathvoid
addSubDigester(ElementDigester dig)
Add a subdigester to current element pathprivate java.lang.String
appendElementPath(java.lang.String name)
Append the name to the element path and return the new path stringvoid
characters(char[] ch, int start, int length)
void
endDocument()
void
endElement(java.lang.String uri, java.lang.String localName, java.lang.String qName)
java.lang.String
getCurrentPath()
Get the current element pathprivate ElementDigester
getDigester(java.lang.String path)
Get the digester for particular pathvoid
parse(java.io.InputStream stream)
Parse an inputprivate java.lang.String
removeElementPath(java.lang.String qname)
Remove the element pathprivate void
startDigest(java.lang.String path, org.xml.sax.Attributes attr)
Call start of particular element digester, if there's anyvoid
startDocument()
void
startElement(java.lang.String namespaceURI, java.lang.String lName, java.lang.String qName, org.xml.sax.Attributes attrs)
-
-
-
Method Detail
-
addDigester
public void addDigester(ElementDigester dig)
Adding a digester to the root path- Parameters:
dig
- the digester
-
addDigester
public void addDigester(java.lang.String path, ElementDigester dig)
Add a digester for the path- Parameters:
path
- the pathdig
- the digester
-
addSubDigester
public void addSubDigester(ElementDigester dig)
Add a subdigester to current element path- Parameters:
dig
- the digester
-
addSubDigester
public void addSubDigester(java.lang.String prefixPath, ElementDigester dig)
Add a sub digester at a path of current path + prefixPath- Parameters:
prefixPath
- the prefix pathdig
- the digester
-
appendElementPath
private java.lang.String appendElementPath(java.lang.String name)
Append the name to the element path and return the new path string- Parameters:
name
- the name of new element- Returns:
- the new path string
-
characters
public void characters(char[] ch, int start, int length) throws org.xml.sax.SAXException
- Specified by:
characters
in interfaceorg.xml.sax.ContentHandler
- Overrides:
characters
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
endDocument
public void endDocument() throws org.xml.sax.SAXException
- Specified by:
endDocument
in interfaceorg.xml.sax.ContentHandler
- Overrides:
endDocument
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
endElement
public void endElement(java.lang.String uri, java.lang.String localName, java.lang.String qName) throws org.xml.sax.SAXException
- Specified by:
endElement
in interfaceorg.xml.sax.ContentHandler
- Overrides:
endElement
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
getCurrentPath
public java.lang.String getCurrentPath()
Get the current element path- Returns:
- the path, or null if at start of document
-
getDigester
private ElementDigester getDigester(java.lang.String path)
Get the digester for particular path- Parameters:
path
- the path- Returns:
- the digester, or null if there's none found
-
removeElementPath
private java.lang.String removeElementPath(java.lang.String qname)
Remove the element path- Parameters:
qname
- the element name is being removed- Returns:
- the path string before the path is removed
-
startDocument
public void startDocument() throws org.xml.sax.SAXException
- Specified by:
startDocument
in interfaceorg.xml.sax.ContentHandler
- Overrides:
startDocument
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
startDigest
private void startDigest(java.lang.String path, org.xml.sax.Attributes attr) throws org.xml.sax.SAXException
Call start of particular element digester, if there's any- Parameters:
attr
- the attributepath
- the path- Throws:
org.xml.sax.SAXException
-
startElement
public void startElement(java.lang.String namespaceURI, java.lang.String lName, java.lang.String qName, org.xml.sax.Attributes attrs) throws org.xml.sax.SAXException
- Specified by:
startElement
in interfaceorg.xml.sax.ContentHandler
- Overrides:
startElement
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
parse
public void parse(java.io.InputStream stream) throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXException, java.io.IOException
Parse an input- Parameters:
stream
- the stream- Throws:
javax.xml.parsers.ParserConfigurationException
org.xml.sax.SAXException
java.io.IOException
-
-