anthill.factory
Class Factory

java.lang.Object
  |
  +--anthill.factory.Factory

public class Factory
extends java.lang.Object

A generic factory for creating object instances of a class matching a particular interface and possibly taking arguments. The mapping between an implementing class and an interface, and also the arguments to be used to instantiate the class are all read from a configuration file.

Version:
$Revision$
Author:
Hein Meling

Constructor Summary
Factory()
          Create a parser object and pass this factory object allowing the parser to place the parsed elements directly into the HashMap using the factory API method put.
Factory(java.lang.String[] configURLs)
          Create a parser object and pass this factory object allowing the parser to place the parsed elements directly into the HashMap using the factory API method put.
 
Method Summary
 double doubleValue(java.lang.String name)
          Method used to obtain the double value associated to a particular configuration parameter
 float floatValue(java.lang.String name)
          Method used to obtain the double value associated to a particular configuration parameter
 java.lang.Object get(java.lang.Class cl)
          The get method is used to obtain an instantiation of a class implementing the requested interface.
 java.lang.Object get(java.lang.String iface)
          The get method is used to obtain an instantiation of a class implementing the requested interface.
 java.lang.Object getValue(java.lang.String name)
          Method used to obtain the value associated to a particular configuration parameter
 int getVersion(java.lang.Class cl)
          Check the version of the class, argument pair stored in the factory database under the key iface.
 int getVersion(java.lang.String iface)
          Check the version of the class, argument pair stored in the factory database under the key iface.
 int intValue(java.lang.String name)
          Method used to obtain the integer value associated to a particular configuration parameter
 void put(java.lang.String iface, java.lang.String clazz, java.lang.String[] names, java.lang.Class[] types, java.lang.Object[] args)
          Method used to insert or update an interface mapping in the factory database.
 void putValue(java.lang.String name, double value)
          Method used to insert or update a double configuration value associated to a configuration name.
 void putValue(java.lang.String name, float value)
          Method used to insert or update a double configuration value associated to a configuration name.
 void putValue(java.lang.String name, int value)
          Method used to insert or update an integer configuration value associated to a configuration name.
 void putValue(java.lang.String name, java.lang.Object value)
          Method used to insert or update a configuration value associated to a configuration name.
 java.lang.String stringValue(java.lang.String name)
          Method used to obtain the String value associated to a particular configuration parameter
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Factory

public Factory(java.lang.String[] configURLs)
        throws ConfigFormatException,
               java.io.IOException
Create a parser object and pass this factory object allowing the parser to place the parsed elements directly into the HashMap using the factory API method put. The parser will use the provided URLs for the configuration file location.
Parameters:
configURLs - An array of URLs pointing to the configuration files to parse.
Throws:
ConfigFormatException - Thrown when there is a problem parsing or validating the content of the system configuration file.
IOException - Thrown when one of the urls cannot be accessed due to an I/O problem.

Factory

public Factory()
        throws ConfigFormatException,
               java.io.IOException
Create a parser object and pass this factory object allowing the parser to place the parsed elements directly into the HashMap using the factory API method put. The parser will use the default configuration file location.
Throws:
ConfigFormatException - Thrown when there is a problem parsing or validating the content of the system configuration file.
IOException - Thrown when one of the urls cannot be accessed due to an I/O problem.
Method Detail

get

public java.lang.Object get(java.lang.Class cl)
                     throws ConfigFormatException,
                            ConstructorException
The get method is used to obtain an instantiation of a class implementing the requested interface.
Parameters:
cl - The interface used as mapping key.
Returns:
An object instance implementing the specified interface.
Throws:
ConfigFormatException - Thrown if specified classes and interfaces cannot be found.
ConstructorException - Thrown if the constructor reflectively invoked by get raises an exception

get

public java.lang.Object get(java.lang.String iface)
                     throws ConfigFormatException,
                            ConstructorException
The get method is used to obtain an instantiation of a class implementing the requested interface.
Parameters:
iface - The interface name used as mapping key.
Returns:
An object instance implementing the specified interface.
Throws:
ConfigFormatException - Thrown if specified classes and interfaces cannot be found.
ConstructorException - Thrown if the constructor reflectively invoked by get raises an exception

getVersion

public int getVersion(java.lang.Class cl)
Check the version of the class, argument pair stored in the factory database under the key iface.
Parameters:
cl - The interface to check the current version of.

getVersion

public int getVersion(java.lang.String iface)
Check the version of the class, argument pair stored in the factory database under the key iface.
Parameters:
iface - The interface to check the current version of.

put

public void put(java.lang.String iface,
                java.lang.String clazz,
                java.lang.String[] names,
                java.lang.Class[] types,
                java.lang.Object[] args)
Method used to insert or update an interface mapping in the factory database.
Parameters:
iface - The interface name used as mapping key.
clazz - The class name implementing the above interface.
args - Array of arguments used for instantiating the above class.

putValue

public void putValue(java.lang.String name,
                     java.lang.Object value)
Method used to insert or update a configuration value associated to a configuration name.
Parameters:
name - The name associated to the value.
value - The value to be inserted.

putValue

public void putValue(java.lang.String name,
                     int value)
Method used to insert or update an integer configuration value associated to a configuration name.
Parameters:
name - The name associated to the value.
value - The value to be inserted.

putValue

public void putValue(java.lang.String name,
                     double value)
Method used to insert or update a double configuration value associated to a configuration name.
Parameters:
name - The name associated to the value.
value - The value to be inserted.

putValue

public void putValue(java.lang.String name,
                     float value)
Method used to insert or update a double configuration value associated to a configuration name.
Parameters:
name - The name associated to the value.
value - The value to be inserted.

getValue

public java.lang.Object getValue(java.lang.String name)
Method used to obtain the value associated to a particular configuration parameter
Parameters:
name - The name identifying the configuration parameter

stringValue

public java.lang.String stringValue(java.lang.String name)
Method used to obtain the String value associated to a particular configuration parameter
Parameters:
name - The name identifying the configuration parameter

intValue

public int intValue(java.lang.String name)
Method used to obtain the integer value associated to a particular configuration parameter
Parameters:
name - The name identifying the configuration parameter

doubleValue

public double doubleValue(java.lang.String name)
Method used to obtain the double value associated to a particular configuration parameter
Parameters:
name - The name identifying the configuration parameter

floatValue

public float floatValue(java.lang.String name)
Method used to obtain the double value associated to a particular configuration parameter
Parameters:
name - The name identifying the configuration parameter

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object