org.apache.avalon.framework.configuration

Class DefaultConfigurationBuilder


public class DefaultConfigurationBuilder
extends java.lang.Object

A DefaultConfigurationBuilder builds Configurations from XML, via a SAX2 compliant parser.

XML namespace support is optional, and disabled by default to preserve backwards-compatibility. To enable it, pass the DefaultConfigurationBuilder(boolean) constructor the flag true, or pass a namespace-enabled XMLReader to the DefaultConfigurationBuilder(XMLReader) constructor.

The mapping from XML namespaces to Configuration namespaces is pretty straightforward, with one caveat: attribute namespaces are (deliberately) not supported. Enabling namespace processing has the following effects:

Whitespace handling. Since mixed content is not allowed in the configurations, whitespace is completely discarded in non-leaf nodes. For the leaf nodes the default behavior is to trim the space surrounding the value. This can be changed by specifying xml:space attribute with value of preserve in that case the whitespace is left intact.

Version:
CVS $Revision: 1.33 $ $Date: 2004/04/03 23:55:54 $
Author:
Avalon Development Team

Constructor Summary

DefaultConfigurationBuilder()
Create a Configuration Builder with a default XMLReader that ignores namespaces.
DefaultConfigurationBuilder(XMLReader parser)
Create a Configuration Builder with your own XMLReader.
DefaultConfigurationBuilder(boolean enableNamespaces)
Create a Configuration Builder, specifying a flag that determines namespace support.

Method Summary

Configuration
build(InputSource input)
Build a configuration object using an XML InputSource object
Configuration
build(InputStream inputStream)
Build a configuration object using an InputStream.
Configuration
build(InputStream inputStream, String systemId)
Build a configuration object using an InputStream; supplying a systemId to make messages about all kinds of errors more meaningfull.
Configuration
build(String uri)
Build a configuration object using an URI
Configuration
buildFromFile(File file)
Build a configuration object from a file using a File object.
Configuration
buildFromFile(String filename)
Build a configuration object from a file using a filename.
protected SAXConfigurationHandler
getHandler()
Get a SAXConfigurationHandler for your configuration reading.
void
setEntityResolver(EntityResolver resolver)
Sets the EntityResolver to be used by parser.

Constructor Details

DefaultConfigurationBuilder

public DefaultConfigurationBuilder()
Create a Configuration Builder with a default XMLReader that ignores namespaces. In order to enable namespaces, use either the constructor that has a boolean or that allows you to pass in your own namespace-enabled XMLReader.

DefaultConfigurationBuilder

public DefaultConfigurationBuilder(XMLReader parser)
Create a Configuration Builder with your own XMLReader.
Parameters:
parser - an XMLReader

DefaultConfigurationBuilder

public DefaultConfigurationBuilder(boolean enableNamespaces)
Create a Configuration Builder, specifying a flag that determines namespace support.
Parameters:
enableNamespaces - If true, a namespace-aware SAXParser is used. If false, the default JAXP SAXParser (without namespace support) is used.
Since:
4.1

Method Details

build

public Configuration build(InputSource input)
            throws SAXException,
                   IOException,
                   ConfigurationException
Build a configuration object using an XML InputSource object
Parameters:
input - an InputSource value
Returns:
a Configuration object

build

public Configuration build(InputStream inputStream)
            throws SAXException,
                   IOException,
                   ConfigurationException
Build a configuration object using an InputStream.
Parameters:
inputStream - an InputStream value
Returns:
a Configuration object

build

public Configuration build(InputStream inputStream,
                           String systemId)
            throws SAXException,
                   IOException,
                   ConfigurationException
Build a configuration object using an InputStream; supplying a systemId to make messages about all kinds of errors more meaningfull.
Parameters:
inputStream - an InputStream value
systemId - the systemId to set on the intermediate sax inputSource
Returns:
a Configuration object

build

public Configuration build(String uri)
            throws SAXException,
                   IOException,
                   ConfigurationException
Build a configuration object using an URI
Parameters:
uri - a String value
Returns:
a Configuration object

buildFromFile

public Configuration buildFromFile(File file)
            throws SAXException,
                   IOException,
                   ConfigurationException
Build a configuration object from a file using a File object.
Parameters:
file - a File object
Returns:
a Configuration object

buildFromFile

public Configuration buildFromFile(String filename)
            throws SAXException,
                   IOException,
                   ConfigurationException
Build a configuration object from a file using a filename.
Parameters:
filename - name of the file
Returns:
a Configuration object

getHandler

protected SAXConfigurationHandler getHandler()
Get a SAXConfigurationHandler for your configuration reading.
Returns:
a SAXConfigurationHandler

setEntityResolver

public void setEntityResolver(EntityResolver resolver)
Sets the EntityResolver to be used by parser. Useful when dealing with xml files that reference external entities.
Parameters:
resolver - implementation of EntityResolver