org.apache.commons.configuration
Class HierarchicalConfigurationConverter

java.lang.Object
  extended byorg.apache.commons.configuration.HierarchicalConfigurationConverter
Direct Known Subclasses:
BaseConfigurationXMLReader.SAXConverter, ConfigurationFactory.HierarchicalConfigurationNodeConverter

abstract class HierarchicalConfigurationConverter
extends Object

A base class for converters that transform a normal configuration object into a hierarchical configuration.

This class provides a default mechanism for iterating over the keys in a configuration and to throw corresponding element start and end events. By handling these events a hierarchy can be constructed that is equivalent to the keys in the original configuration.

Concrete sub classes will implement event handlers that generate SAX events for XML processing or construct a HierarchicalConfiguration root node. All in all with this class it is possible to treat a default configuration as if it was a hierarchical configuration, which can be sometimes useful.

Version:
$Id: HierarchicalConfigurationConverter.java,v 1.6 2004/09/20 09:37:07 henning Exp $
Author:
Oliver Heger
See Also:
HierarchicalConfiguration

Constructor Summary
(package private) HierarchicalConfigurationConverter()
           
 
Method Summary
protected  void closeElements(ConfigurationKey keyLast, ConfigurationKey keyAct)
          Fires all necessary element end events for the specified keys.
protected abstract  void elementEnd(String name)
          An event handler method that is called when an element ends.
protected abstract  void elementStart(String name, Object value)
          An event handler method that is called when an element starts.
protected  void fireValue(String name, Object value)
          Fires all necessary element start events with the actual element values.
protected  String openElements(ConfigurationKey keyLast, ConfigurationKey keyAct, Configuration config, Set keySet)
          Fires all necessary element start events for the specified key.
 void process(Configuration config)
          Processes the specified configuration object.
protected  Iterator reverseIterator(ConfigurationKey key)
          Helper method for determining a reverse iterator for the specified key.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HierarchicalConfigurationConverter

HierarchicalConfigurationConverter()
Method Detail

process

public void process(Configuration config)
Processes the specified configuration object. This method implements the iteration over the configuration's keys. All defined keys are translated into a set of element start and end events represented by calls to the elementStart() and elementEnd() methods.

Parameters:
config - the configuration to be processed

elementStart

protected abstract void elementStart(String name,
                                     Object value)
An event handler method that is called when an element starts. Concrete sub classes must implement it to perform a proper event handling.

Parameters:
name - the name of the new element
value - the element's value; can be null if the element does not have any value

elementEnd

protected abstract void elementEnd(String name)
An event handler method that is called when an element ends. For each call of elementStart() there will be a corresponding call of this method. Concrete sub classes must implement it to perform a proper event handling.

Parameters:
name - the name of the ending element

closeElements

protected void closeElements(ConfigurationKey keyLast,
                             ConfigurationKey keyAct)
Fires all necessary element end events for the specified keys. This method is called for each key obtained from the configuration to be converted. It calculates the common part of the actual and the last processed key and thus determines how many elements must be closed.

Parameters:
keyLast - the last processed key
keyAct - the actual key

reverseIterator

protected Iterator reverseIterator(ConfigurationKey key)
Helper method for determining a reverse iterator for the specified key. This implementation returns an iterator that returns the parts of the given key in reverse order, ignoring indices.

Parameters:
key - the key
Returns:
a reverse iterator for the parts of this key

openElements

protected String openElements(ConfigurationKey keyLast,
                              ConfigurationKey keyAct,
                              Configuration config,
                              Set keySet)
Fires all necessary element start events for the specified key. This method is called for each key obtained from the configuration to be converted. It ensures that all elements "between" the last key and the actual key are opened and their values are set.

Parameters:
keyLast - the last processed key
keyAct - the actual key
config - the configuration to process
keySet - the set with the processed keys
Returns:
the name of the last element on the path

fireValue

protected void fireValue(String name,
                         Object value)
Fires all necessary element start events with the actual element values. This method is called for each key obtained from the configuration to be processed with the last part of the key as argument. The value can be either a single value or a collection.

Parameters:
name - the name of the actual element
value - the element's value


Copyright © 2001-2004 The Apache Software Foundation. All Rights Reserved.