final class BeanHandler
extends org.xml.sax.helpers.DefaultHandler
Modifier and Type | Class and Description |
---|---|
private static class |
BeanHandler.ElementInfo
Element info class
|
Modifier and Type | Field and Description |
---|---|
private java.lang.Object |
bean |
private BeanHandler.ElementInfo |
element |
private org.xml.sax.Locator |
locator |
private static org.slf4j.Logger |
LOG |
private java.lang.String |
subtreeMatchingQname |
private java.lang.reflect.Method |
subtreeMethod |
private java.lang.StringBuilder |
subtreeText |
Constructor and Description |
---|
BeanHandler(java.lang.Object bean)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
private void |
addChild(java.lang.Object parent,
java.lang.Object child,
java.lang.String name)
Attaches a child element to its parent.
|
private void |
appendToSubtree(char[] text,
int start,
int length)
Append to the current extracted subtree text
|
private void |
appendToSubtree(java.lang.String text)
Append to the current extracted subtree text
|
void |
characters(char[] ch,
int start,
int length)
Receive notification of character data within an element - only used currently when
extracting an xml subtree
|
private java.lang.reflect.Method |
chooseSetMethod(java.lang.Class objClass,
java.lang.String prefix,
java.lang.String name,
java.lang.Class preferredParameterType) |
private static java.lang.Object |
convert(java.lang.String attributeName,
java.lang.Class toClass,
java.lang.String value)
Converts a string to an object of a particular class.
|
private java.lang.Object |
createChild(BeanHandler.ElementInfo parent,
java.lang.String name)
Creates a child element of an object.
|
private static java.lang.Object |
createInstance(java.lang.Object parent,
java.lang.Class childClass)
Creates a child object.
|
void |
endElement(java.lang.String uri,
java.lang.String localName,
java.lang.String qName)
Receive notification of the end of an element.
|
private boolean |
endsSubtree(java.lang.String endName)
Determine whether the current endName tag ends the subtree matching
|
private void |
endSubtree() |
private boolean |
extractingSubtree() |
private static java.lang.reflect.Method |
findCreateMethod(java.lang.Class objClass,
java.lang.String name)
Finds a creator method.
|
private java.lang.reflect.Method |
findSetMethod(java.lang.Class objClass,
java.lang.String prefix,
java.lang.String name)
Finds a setter method.
|
private java.lang.String |
getLocation()
Formats the current document location.
|
private java.lang.String |
getTagPart(java.lang.String qName) |
private static java.lang.String |
makeMethodName(java.lang.String prefix,
java.lang.String name)
Builds a method name from an element or attribute name.
|
private void |
setAttribute(BeanHandler.ElementInfo element,
java.lang.String attrName,
java.lang.String attrValue)
Sets an attribute.
|
void |
setDocumentLocator(org.xml.sax.Locator locator)
Receive a Locator object for document events.
|
void |
startElement(java.lang.String uri,
java.lang.String localName,
java.lang.String qName,
org.xml.sax.Attributes attributes)
Receive notification of the start of an element.
|
private boolean |
startExtractingSubtree(java.lang.String name)
Determine whether we should start extracting a subtree, based on
whether there is an extract method for this tag in the parent bean.
|
private static final org.slf4j.Logger LOG
private final java.lang.Object bean
private BeanHandler.ElementInfo element
private org.xml.sax.Locator locator
private java.lang.String subtreeMatchingQname
private java.lang.StringBuilder subtreeText
private java.lang.reflect.Method subtreeMethod
public final void setDocumentLocator(org.xml.sax.Locator locator)
setDocumentLocator
in interface org.xml.sax.ContentHandler
setDocumentLocator
in class org.xml.sax.helpers.DefaultHandler
private java.lang.String getTagPart(java.lang.String qName)
public final void startElement(java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes attributes) throws org.xml.sax.SAXException
startElement
in interface org.xml.sax.ContentHandler
startElement
in class org.xml.sax.helpers.DefaultHandler
org.xml.sax.SAXException
public final 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.ContentHandler
endElement
in class org.xml.sax.helpers.DefaultHandler
org.xml.sax.SAXException
public void characters(char[] ch, int start, int length) throws org.xml.sax.SAXException
characters
in interface org.xml.sax.ContentHandler
characters
in class org.xml.sax.helpers.DefaultHandler
org.xml.sax.SAXException
private java.lang.Object createChild(BeanHandler.ElementInfo parent, java.lang.String name) throws org.xml.sax.SAXException
org.xml.sax.SAXException
private static java.lang.Object createInstance(java.lang.Object parent, java.lang.Class childClass) throws java.lang.Exception
java.lang.Exception
private static java.lang.reflect.Method findCreateMethod(java.lang.Class objClass, java.lang.String name)
private static java.lang.String makeMethodName(java.lang.String prefix, java.lang.String name)
private void setAttribute(BeanHandler.ElementInfo element, java.lang.String attrName, java.lang.String attrValue) throws org.xml.sax.SAXException
org.xml.sax.SAXException
private static java.lang.Object convert(java.lang.String attributeName, java.lang.Class toClass, java.lang.String value) throws java.lang.Exception
attrName
- Name of attributejava.lang.Exception
private java.lang.reflect.Method chooseSetMethod(java.lang.Class objClass, java.lang.String prefix, java.lang.String name, java.lang.Class preferredParameterType) throws java.lang.Exception
java.lang.Exception
private java.lang.reflect.Method findSetMethod(java.lang.Class objClass, java.lang.String prefix, java.lang.String name) throws java.lang.Exception
java.lang.Exception
private void addChild(java.lang.Object parent, java.lang.Object child, java.lang.String name) throws org.xml.sax.SAXException
org.xml.sax.SAXException
private java.lang.String getLocation()
private boolean startExtractingSubtree(java.lang.String name) throws org.xml.sax.SAXException
org.xml.sax.SAXException
private boolean extractingSubtree()
private void appendToSubtree(java.lang.String text)
private void appendToSubtree(char[] text, int start, int length)
private boolean endsSubtree(java.lang.String endName)
private void endSubtree() throws org.xml.sax.SAXException
org.xml.sax.SAXException