org.apache.commons.configuration.tree

Class DefaultConfigurationKey

public class DefaultConfigurationKey extends Object

A simple class that supports creation of and iteration on configuration keys supported by a DefaultExpressionEngine object.

For key creation the class works similar to a StringBuffer: There are several appendXXXX() methods with which single parts of a key can be constructed. All these methods return a reference to the actual object so they can be written in a chain. When using this methods the exact syntax for keys need not be known.

This class also defines a specialized iterator for configuration keys. With such an iterator a key can be tokenized into its single parts. For each part it can be checked whether it has an associated index.

Instances of this class are always associated with an instance of DefaultExpressionEngine, from which the current delimiters are obtained. So key creation and parsing is specific to this associated expression engine.

Since: 1.3

Version: $Id: DefaultConfigurationKey.java 439648 2006-09-02 20:42:10Z oheger $

Author: Oliver Heger

Nested Class Summary
classDefaultConfigurationKey.KeyIterator
A specialized iterator class for tokenizing a configuration key.
Field Summary
DefaultExpressionEngineexpressionEngine
Stores a reference to the associated expression engine.
static intINITIAL_SIZE
Constant for the initial StringBuffer size.
StringBufferkeyBuffer
Holds a buffer with the so far created key.
Constructor Summary
DefaultConfigurationKey(DefaultExpressionEngine engine)
Creates a new instance of DefaultConfigurationKey and sets the associated expression engine.
DefaultConfigurationKey(DefaultExpressionEngine engine, String key)
Creates a new instance of DefaultConfigurationKey and sets the associated expression engine and an initial key.
Method Summary
DefaultConfigurationKeyappend(String property, boolean escape)
Appends the name of a property to this key.
DefaultConfigurationKeyappend(String property)
Appends the name of a property to this key.
DefaultConfigurationKeyappendAttribute(String attr)
Appends an attribute to this configuration key.
DefaultConfigurationKeyappendIndex(int index)
Appends an index to this configuration key.
StringattributeName(String key)
Extracts the name of the attribute from the given attribute key.
StringconstructAttributeKey(String key)
Decorates the given key so that it represents an attribute.
booleanequals(Object c)
Checks if two ConfigurationKey objects are equal.
StringescapeDelimiters(String key)
Escapes the delimiters in the specified string.
DefaultExpressionEnginegetExpressionEngine()
Returns the associated default expression engine.
inthashCode()
Returns the hash code for this object.
booleanhasLeadingDelimiter(String key)
Helper method that checks if the specified key starts with a property delimiter.
booleanhasTrailingDelimiter(String key)
Helper method that checks if the specified key ends with a property delimiter.
booleanisAttributeKey(String key)
Tests if the specified key represents an attribute according to the current expression engine.
DefaultConfigurationKey.KeyIteratoriterator()
Returns an iterator for iterating over the single components of this configuration key.
intlength()
Returns the actual length of this configuration key.
StringremoveAttributeMarkers(String key)
Helper method for removing attribute markers from a key.
voidsetExpressionEngine(DefaultExpressionEngine expressionEngine)
Sets the associated expression engine.
voidsetLength(int len)
Sets the new length of this configuration key.
StringtoString()
Returns a string representation of this object.
Stringtrim(String key)
Removes delimiters at the beginning and the end of the specified key.
StringtrimLeft(String key)
Removes leading property delimiters from the specified key.
StringtrimRight(String key)
Removes trailing property delimiters from the specified key.
StringunescapeDelimiters(String key)
Unescapes the delimiters in the specified string.

Field Detail

expressionEngine

private DefaultExpressionEngine expressionEngine
Stores a reference to the associated expression engine.

INITIAL_SIZE

private static final int INITIAL_SIZE
Constant for the initial StringBuffer size.

keyBuffer

private StringBuffer keyBuffer
Holds a buffer with the so far created key.

Constructor Detail

DefaultConfigurationKey

public DefaultConfigurationKey(DefaultExpressionEngine engine)
Creates a new instance of DefaultConfigurationKey and sets the associated expression engine.

Parameters: engine the expression engine

DefaultConfigurationKey

public DefaultConfigurationKey(DefaultExpressionEngine engine, String key)
Creates a new instance of DefaultConfigurationKey and sets the associated expression engine and an initial key.

Parameters: engine the expression engine key the key to be wrapped

Method Detail

append

public DefaultConfigurationKey append(String property, boolean escape)
Appends the name of a property to this key. If necessary, a property delimiter will be added. If the boolean argument is set to true, property delimiters contained in the property name will be escaped.

Parameters: property the name of the property to be added escape a flag if property delimiters in the passed in property name should be escaped

Returns: a reference to this object

append

public DefaultConfigurationKey append(String property)
Appends the name of a property to this key. If necessary, a property delimiter will be added. Property delimiters in the given string will not be escaped.

Parameters: property the name of the property to be added

Returns: a reference to this object

appendAttribute

public DefaultConfigurationKey appendAttribute(String attr)
Appends an attribute to this configuration key.

Parameters: attr the name of the attribute to be appended

Returns: a reference to this object

appendIndex

public DefaultConfigurationKey appendIndex(int index)
Appends an index to this configuration key.

Parameters: index the index to be appended

Returns: a reference to this object

attributeName

public String attributeName(String key)
Extracts the name of the attribute from the given attribute key. This method removes the attribute markers - if any - from the specified key.

Parameters: key the attribute key

Returns: the name of the corresponding attribute

constructAttributeKey

public String constructAttributeKey(String key)
Decorates the given key so that it represents an attribute. Adds special start and end markers. The passed in string will be modified only if does not already represent an attribute.

Parameters: key the key to be decorated

Returns: the decorated attribute key

equals

public boolean equals(Object c)
Checks if two ConfigurationKey objects are equal. The method can be called with strings or other objects, too.

Parameters: c the object to compare

Returns: a flag if both objects are equal

escapeDelimiters

private String escapeDelimiters(String key)
Escapes the delimiters in the specified string.

Parameters: key the key to be escaped

Returns: the escaped key

getExpressionEngine

public DefaultExpressionEngine getExpressionEngine()
Returns the associated default expression engine.

Returns: the associated expression engine

hashCode

public int hashCode()
Returns the hash code for this object.

Returns: the hash code

hasLeadingDelimiter

private boolean hasLeadingDelimiter(String key)
Helper method that checks if the specified key starts with a property delimiter.

Parameters: key the key to check

Returns: a flag if there is a leading delimiter

hasTrailingDelimiter

private boolean hasTrailingDelimiter(String key)
Helper method that checks if the specified key ends with a property delimiter.

Parameters: key the key to check

Returns: a flag if there is a trailing delimiter

isAttributeKey

public boolean isAttributeKey(String key)
Tests if the specified key represents an attribute according to the current expression engine.

Parameters: key the key to be checked

Returns: true if this is an attribute key, false otherwise

iterator

public DefaultConfigurationKey.KeyIterator iterator()
Returns an iterator for iterating over the single components of this configuration key.

Returns: an iterator for this key

length

public int length()
Returns the actual length of this configuration key.

Returns: the length of this key

removeAttributeMarkers

private String removeAttributeMarkers(String key)
Helper method for removing attribute markers from a key.

Parameters: key the key

Returns: the key with removed attribute markers

setExpressionEngine

public void setExpressionEngine(DefaultExpressionEngine expressionEngine)
Sets the associated expression engine.

Parameters: expressionEngine the expression engine (must not be null)

setLength

public void setLength(int len)
Sets the new length of this configuration key. With this method it is possible to truncate the key, e.g. to return to a state prior calling some append() methods. The semantic is the same as the setLength() method of StringBuffer.

Parameters: len the new length of the key

toString

public String toString()
Returns a string representation of this object. This is the configuration key as a plain string.

Returns: a string for this object

trim

public String trim(String key)
Removes delimiters at the beginning and the end of the specified key.

Parameters: key the key

Returns: the key with removed property delimiters

trimLeft

public String trimLeft(String key)
Removes leading property delimiters from the specified key.

Parameters: key the key

Returns: the key with removed leading property delimiters

trimRight

public String trimRight(String key)
Removes trailing property delimiters from the specified key.

Parameters: key the key

Returns: the key with removed trailing property delimiters

unescapeDelimiters

private String unescapeDelimiters(String key)
Unescapes the delimiters in the specified string.

Parameters: key the key to be unescaped

Returns: the unescaped key