org.apache.velocity.tools.config
Class FactoryConfiguration

java.lang.Object
  extended by org.apache.velocity.tools.config.Configuration
      extended by org.apache.velocity.tools.config.CompoundConfiguration<ToolboxConfiguration>
          extended by org.apache.velocity.tools.config.FactoryConfiguration
All Implemented Interfaces:
java.lang.Comparable<Configuration>
Direct Known Subclasses:
EasyFactoryConfiguration, FileFactoryConfiguration

public class FactoryConfiguration
extends CompoundConfiguration<ToolboxConfiguration>

This class serves to define configuration info for a ToolboxFactory. It contains the ToolboxConfigurations for the factory as well as any Data which is to be made available in the application scope by the factory and any Propertys which you intend to be available to all tools managed by the factory, regardless of toolbox or scope.

Most users will not find themselves directly using the API of this class, as its subclasses generally provide much simpler means of inputting the actual configuration info whether from XML, Java or a Properties files.

When combining any Configurations via the various addConfiguration(org.apache.velocity.tools.config.FactoryConfiguration) methods in each class, it is essential to remember that subsequent configurations always override previous ones. This is a "last entry wins" approach to configuration!

For debugging, this class tracks its "sources", keeping a chronological list of all sources for configuration data. When you add configuration info to this class via addConfiguration(org.apache.velocity.tools.config.FactoryConfiguration), the source lists from those FactoryConfigurations is appended to this instance's list. The initial item in this list will typically be the name of the FactoryConfiguration class (or subclass) along with a caller-provided string identifying where this instance was created. This aids greatly in debugging combined, complex configurations. You may add further sources at any time via addSource(java.lang.String).

The toString() method of this class provides a complete and well-formatted listing of the configuration info contained within this instance and is also very useful for debugging.

Version:
$Id: FactoryConfiguration.java 511959 2007-02-26 19:24:39Z nbubna $
Author:
Nathan Bubna

Field Summary
private  java.util.SortedSet<Data> data
           
private  java.util.List<java.lang.String> sources
           
 
Constructor Summary
  FactoryConfiguration()
           
protected FactoryConfiguration(java.lang.Class clazz, java.lang.String source)
          Allows subclasses to construct an instance that uses their classname.
  FactoryConfiguration(java.lang.String source)
          Creates a new instance with the specified source name combined with this class's name as the initial source.
 
Method Summary
 void addConfiguration(FactoryConfiguration config)
           
 void addData(Data newDatum)
           
 void addSource(java.lang.String source)
           
 void addToolbox(ToolboxConfiguration toolbox)
           
 ToolboxFactory createFactory()
           
 boolean equals(java.lang.Object o)
          This will consider the object equal if it is a FactoryConfiguration and whose toString(boolean) method, when passed false, returns a String equal to that returned by a call to toString(false) on this instance.
 java.util.SortedSet<Data> getData()
           
 Data getData(Data findme)
           
 Data getData(java.lang.String key)
           
 java.lang.String getSource()
          Returns the original source of this particular instance.
 java.util.List<java.lang.String> getSources()
          Returns the list of sources for this configuration info in order starting from the source name given to this instance (if any) and going to the most recently added source.
 ToolboxConfiguration getToolbox(java.lang.String scope)
           
 java.util.Collection<ToolboxConfiguration> getToolboxes()
           
 boolean hasData()
           
 int hashCode()
           
 boolean removeData(Data datum)
           
 void removeToolbox(ToolboxConfiguration toolbox)
           
 void setData(java.util.Collection<Data> data)
           
 void setSource(java.lang.String source)
          Sets the name of the original source of this particular instance.
 void setToolboxes(java.util.Collection<ToolboxConfiguration> toolboxes)
           
 java.lang.String toString()
           
 java.lang.String toString(boolean includeSources)
           
 void validate()
           
 
Methods inherited from class org.apache.velocity.tools.config.CompoundConfiguration
addChild, addConfiguration, appendChildren, getChild, getChildren, hasChildren, removeChild, setChildren
 
Methods inherited from class org.apache.velocity.tools.config.Configuration
addConfiguration, addProperty, appendProperties, compareTo, getProperties, getProperty, getPropertyMap, hasProperties, removeProperty, removeProperty, setProperties, setProperty, setPropertyMap
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

data

private final java.util.SortedSet<Data> data

sources

private final java.util.List<java.lang.String> sources
Constructor Detail

FactoryConfiguration

public FactoryConfiguration()

FactoryConfiguration

public FactoryConfiguration(java.lang.String source)
Creates a new instance with the specified source name combined with this class's name as the initial source.


FactoryConfiguration

protected FactoryConfiguration(java.lang.Class clazz,
                               java.lang.String source)
Allows subclasses to construct an instance that uses their classname.

Method Detail

getSource

public java.lang.String getSource()
Returns the original source of this particular instance.


setSource

public void setSource(java.lang.String source)
Sets the name of the original source of this particular instance. This does not affect subsequently added sources.


getSources

public java.util.List<java.lang.String> getSources()
Returns the list of sources for this configuration info in order starting from the source name given to this instance (if any) and going to the most recently added source.


addSource

public void addSource(java.lang.String source)

addData

public void addData(Data newDatum)

removeData

public boolean removeData(Data datum)

getData

public Data getData(java.lang.String key)

getData

public Data getData(Data findme)

hasData

public boolean hasData()

getData

public java.util.SortedSet<Data> getData()

setData

public void setData(java.util.Collection<Data> data)

addToolbox

public void addToolbox(ToolboxConfiguration toolbox)

removeToolbox

public void removeToolbox(ToolboxConfiguration toolbox)

getToolbox

public ToolboxConfiguration getToolbox(java.lang.String scope)

getToolboxes

public java.util.Collection<ToolboxConfiguration> getToolboxes()

setToolboxes

public void setToolboxes(java.util.Collection<ToolboxConfiguration> toolboxes)

addConfiguration

public void addConfiguration(FactoryConfiguration config)

validate

public void validate()
Overrides:
validate in class CompoundConfiguration<ToolboxConfiguration>

equals

public boolean equals(java.lang.Object o)
This will consider the object equal if it is a FactoryConfiguration and whose toString(boolean) method, when passed false, returns a String equal to that returned by a call to toString(false) on this instance. toString(boolean) is used since that returns a String encompassing all relevant info about the configuration except for the source information. In other words, two FactoryConfigurations are considered equal if they have the same data, properties and toolboxes in String form.

Overrides:
equals in class CompoundConfiguration<ToolboxConfiguration>

hashCode

public int hashCode()
Overrides:
hashCode in class CompoundConfiguration<ToolboxConfiguration>

toString

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

toString

public java.lang.String toString(boolean includeSources)

createFactory

public ToolboxFactory createFactory()


Copyright (c) 2003-2007 Apache Software Foundation