public class

BeanReader

extends Digester
java.lang.Object
   ↳ org.xml.sax.helpers.DefaultHandler
     ↳ org.apache.commons.digester.Digester
       ↳ org.apache.commons.betwixt.io.BeanReader

Class Overview

BeanReader reads a tree of beans from an XML document.

Call registerBeanClass(Class) or registerBeanClass(String, Class) to add rules to map a bean class.

Summary

[Expand]
Inherited Constants
From class org.apache.commons.digester.Digester
[Expand]
Inherited Fields
From class org.apache.commons.digester.Digester
Public Constructors
BeanReader()
Construct a new BeanReader with default properties.
BeanReader(SAXParser parser)
Construct a new BeanReader, allowing a SAXParser to be passed in.
BeanReader(XMLReader reader)
Construct a new BeanReader, allowing an XMLReader to be passed in.
Public Methods
void deregisterBeanClass(Class beanClass)

Remove the given class from the register.

void flushRegisteredBeanClasses()

Flush all registered bean classes.

BindingConfiguration getBindingConfiguration()
Gets the dynamic configuration setting to be used for bean reading.
Log getLog()

Get the current level for logging.

boolean getMatchIDs()
This method is deprecated. 0.5 use getMapIDs()
ReadConfiguration getReadConfiguration()
Gets read specific configuration details.
XMLIntrospector getXMLIntrospector()

Get the introspector used.

void registerBeanClass(InputSource mapping, Class beanClass)

Registers a class with a custom mapping.

void registerBeanClass(String path, Class beanClass)

Registers a bean class and add mapping rules for this bean class at the given path expression.

void registerBeanClass(Class beanClass)

Register a bean class and add mapping rules for this bean class.

void registerMultiMapping(InputSource mapping)

Registers a class with a multi-mapping.

void setBindingConfiguration(BindingConfiguration bindingConfiguration)
Sets the dynamic configuration setting to be used for bean reading.
void setLog(Log log)

Set the current logging level.

void setMatchIDs(boolean matchIDs)
This method is deprecated. 0.5 use setMapIDs(boolean)
void setReadConfiguration(ReadConfiguration readConfiguration)
Sets the read specific configuration details.
void setXMLIntrospector(XMLIntrospector introspector)

Set the introspector to be used.

Protected Methods
void addBeanCreateRule(String path, ElementDescriptor elementDescriptor, Class beanClass)
Adds a new bean create rule for the specified path
[Expand]
Inherited Methods
From class org.apache.commons.digester.Digester
From class org.xml.sax.helpers.DefaultHandler
From class java.lang.Object
From interface org.xml.sax.ContentHandler
From interface org.xml.sax.DTDHandler
From interface org.xml.sax.EntityResolver
From interface org.xml.sax.ErrorHandler

Public Constructors

public BeanReader ()

Construct a new BeanReader with default properties.

public BeanReader (SAXParser parser)

Construct a new BeanReader, allowing a SAXParser to be passed in. This allows BeanReader to be used in environments which are unfriendly to JAXP1.1 (such as WebLogic 6.0). Thanks for the request to change go to James House (james@interobjective.com). This may help in places where you are able to load JAXP 1.1 classes yourself.

Parameters
parser use this SAXParser

public BeanReader (XMLReader reader)

Construct a new BeanReader, allowing an XMLReader to be passed in. This allows BeanReader to be used in environments which are unfriendly to JAXP1.1 (such as WebLogic 6.0). Note that if you use this option you have to configure namespace and validation support yourself, as these properties only affect the SAXParser and emtpy constructor.

Parameters
reader use this XMLReader as source for SAX events

Public Methods

public void deregisterBeanClass (Class beanClass)

Remove the given class from the register. Calling this method will allow the bean class to be re-registered by a subsequent call to registerBeanClass. This allows (for example) a bean to be reintrospected after a change to the introspection settings.

Note that deregistering a bean does not remove the Digester rules associated with that bean.

Parameters
beanClass the Class to remove from the set of registered bean classes

public void flushRegisteredBeanClasses ()

Flush all registered bean classes. This allows all bean classes to be re-registered by a subsequent calls to registerBeanClass.

Note that deregistering a bean does not remove the Digester rules associated with that bean.

public BindingConfiguration getBindingConfiguration ()

Gets the dynamic configuration setting to be used for bean reading.

Returns
  • the BindingConfiguration settings, not null

public Log getLog ()

Get the current level for logging.

Returns
  • the Log implementation this class logs to

public boolean getMatchIDs ()

This method is deprecated.
0.5 use getMapIDs()

Should the reader use ID attributes to match beans.

Returns
  • true if ID and IDREF attributes should be used to match instances

public ReadConfiguration getReadConfiguration ()

Gets read specific configuration details.

Returns
  • the ReadConfiguration, not null

public XMLIntrospector getXMLIntrospector ()

Get the introspector used.

The XMLBeanInfo used to map each bean is created by the XMLIntrospector. One way in which the mapping can be customized is by altering the XMLIntrospector.

Returns
  • the XMLIntrospector used for the introspection

public void registerBeanClass (InputSource mapping, Class beanClass)

Registers a class with a custom mapping. This mapping is specified by the standard dot betwixt document contained in the given InputSource.

Note: the custom mapping will be registered with the introspector. This must remain so for the reading to work correctly It is recommended that use of the pre-registeration process provided by register(Class, InputSource) be considered as an alternative to this method.

Parameters
mapping InputSource giving the dot betwixt document specifying the mapping
beanClass Class that should be register
Throws
IntrospectionException
SAXException
IOException
IntrospectionException
SAXException

public void registerBeanClass (String path, Class beanClass)

Registers a bean class and add mapping rules for this bean class at the given path expression.

A bean class is introspected when it is registered. It will not be introspected again even if the introspection settings are changed. If re-introspection is required, then deregisterBeanClass(Class) must be called and the bean re-registered.

A bean class can only be registered once. If the same class is registered a second time, this registration will be ignored. In order to change a registration, call deregisterBeanClass(Class) before calling this method.

All the rules required to digest this bean are added when this method is called. Other rules that you want to execute before these should be added before this method is called. Those that should be executed afterwards, should be added afterwards.

Parameters
path the xml path expression where the class is to registered. This should be in digester path notation
beanClass the Class to be registered
Throws
IntrospectionException if the bean introspection fails

public void registerBeanClass (Class beanClass)

Register a bean class and add mapping rules for this bean class.

A bean class is introspected when it is registered. It will not be introspected again even if the introspection settings are changed. If re-introspection is required, then deregisterBeanClass(Class) must be called and the bean re-registered.

A bean class can only be registered once. If the same class is registered a second time, this registration will be ignored. In order to change a registration, call deregisterBeanClass(Class) before calling this method.

All the rules required to digest this bean are added when this method is called. Other rules that you want to execute before these should be added before this method is called. Those that should be executed afterwards, should be added afterwards.

Parameters
beanClass the Class to be registered
Throws
IntrospectionException if the bean introspection fails

public void registerMultiMapping (InputSource mapping)

Registers a class with a multi-mapping. This mapping is specified by the multi-mapping document contained in the given InputSource.

Note: the custom mappings will be registered with the introspector. This must remain so for the reading to work correctly It is recommended that use of the pre-registeration process provided by register(Class, InputSource) be considered as an alternative to this method.

Parameters
mapping InputSource giving the multi-mapping document specifying the mapping
Throws
IntrospectionException
SAXException
IOException
IntrospectionException
SAXException

public void setBindingConfiguration (BindingConfiguration bindingConfiguration)

Sets the dynamic configuration setting to be used for bean reading.

Parameters
bindingConfiguration the BindingConfiguration settings, not null

public void setLog (Log log)

Set the current logging level.

Parameters
log the Logimplementation to use for logging

public void setMatchIDs (boolean matchIDs)

This method is deprecated.
0.5 use setMapIDs(boolean)

Set whether the read should use ID attributes to match beans.

Parameters
matchIDs pass true if ID's should be matched

public void setReadConfiguration (ReadConfiguration readConfiguration)

Sets the read specific configuration details.

Parameters
readConfiguration not null

public void setXMLIntrospector (XMLIntrospector introspector)

Set the introspector to be used.

The XMLBeanInfo used to map each bean is created by the XMLIntrospector. One way in which the mapping can be customized is by altering the XMLIntrospector.

Parameters
introspector use this introspector

Protected Methods

protected void addBeanCreateRule (String path, ElementDescriptor elementDescriptor, Class beanClass)

Adds a new bean create rule for the specified path

Parameters
path the digester path at which this rule should be added
elementDescriptor the ElementDescriptor describes the expected element
beanClass the Class of the bean created by this rule