public class SaxDigesterHandler
extends org.xml.sax.helpers.DefaultHandler
| Modifier and Type | Field and Description |
|---|---|
private java.util.Map |
_digesters
the map contains subdigesters
|
private java.util.List |
_elementPath
keep track of the path for current element
|
private static java.util.logging.Logger |
_logger
the logger *
|
| Constructor and Description |
|---|
SaxDigesterHandler()
Constructor
|
| Modifier and Type | Method and Description |
|---|---|
void |
addDigester(ElementDigester dig)
Adding a digester to the root path
|
void |
addDigester(java.lang.String path,
ElementDigester dig)
Add a digester for the path
|
void |
addSubDigester(ElementDigester dig)
Add a subdigester to current element path
|
void |
addSubDigester(java.lang.String prefixPath,
ElementDigester dig)
Add a sub digester at a path of current path + prefixPath
|
private java.lang.String |
appendElementPath(java.lang.String name)
Append the name to the element path and return the new path string
|
void |
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 path
|
private ElementDigester |
getDigester(java.lang.String path)
Get the digester for particular path
|
void |
parse(java.io.InputStream stream)
Parse an input
|
private java.lang.String |
removeElementPath(java.lang.String qname)
Remove the element path
|
private void |
startDigest(java.lang.String path,
org.xml.sax.Attributes attr)
Call start of particular element digester, if there's any
|
void |
startDocument() |
void |
startElement(java.lang.String namespaceURI,
java.lang.String lName,
java.lang.String qName,
org.xml.sax.Attributes attrs) |
private static final java.util.logging.Logger _logger
private java.util.Map _digesters
private java.util.List _elementPath
public void addDigester(ElementDigester dig)
dig - the digesterpublic void addDigester(java.lang.String path,
ElementDigester dig)
path - the pathdig - the digesterpublic void addSubDigester(ElementDigester dig)
dig - the digesterpublic void addSubDigester(java.lang.String prefixPath,
ElementDigester dig)
prefixPath - the prefix pathdig - the digesterprivate java.lang.String appendElementPath(java.lang.String name)
name - the name of new elementpublic void characters(char[] ch,
int start,
int length)
throws org.xml.sax.SAXException
characters in interface org.xml.sax.ContentHandlercharacters in class org.xml.sax.helpers.DefaultHandlerorg.xml.sax.SAXExceptionpublic void endDocument()
throws org.xml.sax.SAXException
endDocument in interface org.xml.sax.ContentHandlerendDocument in class org.xml.sax.helpers.DefaultHandlerorg.xml.sax.SAXExceptionpublic void endElement(java.lang.String uri,
java.lang.String localName,
java.lang.String qName)
throws org.xml.sax.SAXException
endElement in interface org.xml.sax.ContentHandlerendElement in class org.xml.sax.helpers.DefaultHandlerorg.xml.sax.SAXExceptionpublic java.lang.String getCurrentPath()
private ElementDigester getDigester(java.lang.String path)
path - the pathprivate java.lang.String removeElementPath(java.lang.String qname)
qname - the element name is being removedpublic void startDocument()
throws org.xml.sax.SAXException
startDocument in interface org.xml.sax.ContentHandlerstartDocument in class org.xml.sax.helpers.DefaultHandlerorg.xml.sax.SAXExceptionprivate void startDigest(java.lang.String path,
org.xml.sax.Attributes attr)
throws org.xml.sax.SAXException
attr - the attributepath - the pathorg.xml.sax.SAXExceptionpublic void startElement(java.lang.String namespaceURI,
java.lang.String lName,
java.lang.String qName,
org.xml.sax.Attributes attrs)
throws org.xml.sax.SAXException
startElement in interface org.xml.sax.ContentHandlerstartElement in class org.xml.sax.helpers.DefaultHandlerorg.xml.sax.SAXExceptionpublic void parse(java.io.InputStream stream)
throws javax.xml.parsers.ParserConfigurationException,
org.xml.sax.SAXException,
java.io.IOException
stream - the streamjavax.xml.parsers.ParserConfigurationExceptionorg.xml.sax.SAXExceptionjava.io.IOException