biz.hammurapi.config
Class DomConfigFactory

java.lang.Object
  extended by biz.hammurapi.config.DomConfigFactory

public class DomConfigFactory
extends java.lang.Object

Creates and configures objects from DOM Element (XML file). DOM Element can be read from InputStream, File or URL. Instantiation and configuration happens as follows:

Instantiation

Configuration

Examples
  1. <name>Pavel</name> will yield java.lang.String with value 'Pavel'
  2. <age type="java.lang.Integer">33</age> will yield java.lang.Integer with value '33'
  3. <config type="org.myself.myproject.MyConfig" url="http://myproject.myself.org/MyConfig.xml"/> will load configuration from URL and configure MyConfig object
  4. <config type="org.myself.myproject.MyParameterizableConfig">
         <parameter name="pi" type="java.lang.Double">3.14159</parameter>
     </config>
    will create MyParameterizableConfig object and then invoke its setParameter() method if MyParameterizableConfig implements Parameterizable or invoke setPi() method if there is such method. In lenient mode nothing will happen if there is no setPi() method. Otherwise exception will be thrown.
  5. <config type="org.myself.myproject.MyParameterizableConfig">
         <pi type="java.lang.Double">3.14159</pi>
     </config>
    same as above.
It is recommended to use XML Beans generated classes instead of this factory.

Version:
$Revision: 1.12 $
Author:
Pavel Vlasov

Field Summary
static java.lang.String CLASS_LOADER
           
static java.lang.String CODE_EXPRESSION
           
static java.lang.String CONFIG_RESOURCE_PREFIX
           
static java.lang.String MAP_KEY_EXPRESSION
           
static java.lang.String MAP_VALUE_EXPRESSION
           
static java.util.Map PRIMITIVES
           
static java.lang.String RESOURCE_PREFIX
           
static java.lang.String XML_EXTENSION
           
 
Constructor Summary
DomConfigFactory()
          Default constructor
DomConfigFactory(java.lang.ClassLoader classLoader)
           
DomConfigFactory(java.lang.ClassLoader classLoader, Context context)
           
DomConfigFactory(Context context)
          Default constructor
 
Method Summary
 java.lang.Object create(java.io.File file, java.lang.String xPath)
          Parses file and returns object.
 java.lang.Object create(java.io.File file, java.lang.String xPath, ClassAcceptor classAcceptor, ObjectAcceptor objectAcceptor)
          Parses file and returns object
 java.lang.Object create(java.io.InputStream in, java.lang.String xPath)
          Same as create(in, xPath, null, null)
 java.lang.Object create(java.io.InputStream in, java.lang.String xPath, ClassAcceptor classAcceptor, ObjectAcceptor objectAcceptor)
          Creates and configures object from InputStream
 java.lang.Object create(org.w3c.dom.Node node)
          Creates object.
 java.lang.Object create(org.w3c.dom.Node node, ClassAcceptor classAcceptor, ObjectAcceptor objectAcceptor)
          Creates and configures object
 java.lang.Object create(java.io.Reader in, java.lang.String xPath)
          Same as create(in, xPath, null, null)
 java.lang.Object create(java.io.Reader in, java.lang.String xPath, ClassAcceptor classAcceptor, ObjectAcceptor objectAcceptor)
          Creates and configures object from InputStream
 java.lang.Object create(java.net.URL url, java.lang.String xPath)
          Same as create(url, xPath, null, null)
 java.lang.Object create(java.net.URL url, java.lang.String xPath, ClassAcceptor classAcceptor, ObjectAcceptor objectAcceptor)
          Creates and configures object from URL
static void inject(java.lang.Object instance, Context context)
          Sets property (field or through setter or appender) using reflection.
static java.util.Iterator loadProviders(java.lang.Class service, java.lang.ClassLoader classLoader)
          Loads providers for a given service.
static void main(java.lang.String[] args)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

XML_EXTENSION

public static final java.lang.String XML_EXTENSION
See Also:
Constant Field Values

CONFIG_RESOURCE_PREFIX

public static final java.lang.String CONFIG_RESOURCE_PREFIX
See Also:
Constant Field Values

RESOURCE_PREFIX

public static final java.lang.String RESOURCE_PREFIX
See Also:
Constant Field Values

CLASS_LOADER

public static final java.lang.String CLASS_LOADER

CODE_EXPRESSION

public static final java.lang.String CODE_EXPRESSION
See Also:
Constant Field Values

MAP_KEY_EXPRESSION

public static final java.lang.String MAP_KEY_EXPRESSION
See Also:
Constant Field Values

MAP_VALUE_EXPRESSION

public static final java.lang.String MAP_VALUE_EXPRESSION
See Also:
Constant Field Values

PRIMITIVES

public static final java.util.Map PRIMITIVES
Constructor Detail

DomConfigFactory

public DomConfigFactory()
Default constructor


DomConfigFactory

public DomConfigFactory(Context context)
Default constructor


DomConfigFactory

public DomConfigFactory(java.lang.ClassLoader classLoader)

DomConfigFactory

public DomConfigFactory(java.lang.ClassLoader classLoader,
                        Context context)
Method Detail

create

public java.lang.Object create(org.w3c.dom.Node node)
                        throws ConfigurationException
Creates object. Same as create(node, null, null)

Parameters:
node -
Returns:
Throws:
ConfigurationException

create

public java.lang.Object create(java.io.File file,
                               java.lang.String xPath)
                        throws ConfigurationException,
                               java.io.IOException
Parses file and returns object. Same as create(file, xPath, null, null)

Parameters:
file - XML configuration file
xPath - XPath expression, can be null
Returns:
configured object
Throws:
ConfigurationException
java.io.IOException

create

public java.lang.Object create(java.io.File file,
                               java.lang.String xPath,
                               ClassAcceptor classAcceptor,
                               ObjectAcceptor objectAcceptor)
                        throws ConfigurationException,
                               java.io.IOException
Parses file and returns object

Parameters:
file - XML configuration file
xPath - XPath expression, can be null
classAcceptor - Class acceptor, validates that class about to be instantiated is 'the right one'
objectAcceptor - Object acceptor, validates instantiated object.
Returns:
Configured object
Throws:
ConfigurationException
java.io.IOException

create

public java.lang.Object create(java.io.InputStream in,
                               java.lang.String xPath)
                        throws ConfigurationException,
                               java.io.IOException
Same as create(in, xPath, null, null)

Parameters:
in - Input stream
xPath - XPath expression, can be null
Returns:
Configured object
Throws:
ConfigurationException
java.io.IOException

create

public java.lang.Object create(java.io.InputStream in,
                               java.lang.String xPath,
                               ClassAcceptor classAcceptor,
                               ObjectAcceptor objectAcceptor)
                        throws ConfigurationException,
                               java.io.IOException
Creates and configures object from InputStream

Parameters:
in - Input stream
xPath - XPath expression, can be null
classAcceptor -
objectAcceptor -
Returns:
Configured object
Throws:
ConfigurationException
java.io.IOException

create

public java.lang.Object create(java.io.Reader in,
                               java.lang.String xPath)
                        throws ConfigurationException,
                               java.io.IOException
Same as create(in, xPath, null, null)

Parameters:
in - Reader
xPath - XPath expression, can be null
Returns:
Configured object
Throws:
ConfigurationException
java.io.IOException

create

public java.lang.Object create(java.io.Reader in,
                               java.lang.String xPath,
                               ClassAcceptor classAcceptor,
                               ObjectAcceptor objectAcceptor)
                        throws ConfigurationException,
                               java.io.IOException
Creates and configures object from InputStream

Parameters:
in - Reader
xPath - XPath expression, can be null
classAcceptor -
objectAcceptor -
Returns:
Configured object
Throws:
ConfigurationException
java.io.IOException

create

public java.lang.Object create(java.net.URL url,
                               java.lang.String xPath)
                        throws ConfigurationException,
                               java.io.IOException
Same as create(url, xPath, null, null)

Parameters:
url - URL to read configuration from
xPath - XPath expression, can be null
Returns:
Configured object
Throws:
ConfigurationException
java.io.IOException

create

public java.lang.Object create(java.net.URL url,
                               java.lang.String xPath,
                               ClassAcceptor classAcceptor,
                               ObjectAcceptor objectAcceptor)
                        throws ConfigurationException,
                               java.io.IOException
Creates and configures object from URL

Parameters:
url - Url
xPath - XPath expression, can be null
classAcceptor -
objectAcceptor -
Returns:
Configured object
Throws:
ConfigurationException
java.io.IOException

create

public java.lang.Object create(org.w3c.dom.Node node,
                               ClassAcceptor classAcceptor,
                               ObjectAcceptor objectAcceptor)
                        throws ConfigurationException
Creates and configures object

Parameters:
node -
classAcceptor -
objectAcceptor -
cxpa - Cached XPath API to accelerate XPath expressions evaluation.
Returns:
Configured object
Throws:
ConfigurationException

inject

public static void inject(java.lang.Object instance,
                          Context context)
                   throws ConfigurationException
Sets property (field or through setter or appender) using reflection. This method can inject single or multiple values from the context to the instance using setXXX(argType arg), setXXX(argType[] arg), setXXX(Collection args), or addXXX(argType arg). For multi-value injections the context shall return collection, array, or iterator instance from its get() method.

Parameters:
instance -
context - Source of data to inject.
Throws:
ConfigurationException

main

public static void main(java.lang.String[] args)

loadProviders

public static java.util.Iterator loadProviders(java.lang.Class service,
                                               java.lang.ClassLoader classLoader)
Loads providers for a given service. Providers are loaded anew at every invocation of this method.

Type Parameters:
T -
Parameters:
service - Service class.
classLoader - Class loader
Returns:
Iterator of providers of given class.
Throws:
ConfigurationException


Copyright © 2003 Hammurapi Group. All Rights Reserved.