## org.apache.commons.configuration.tree
Class DefaultConfigurationKey

    java.lang.Object
      org.apache.commons.configuration.tree.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
`class` `DefaultConfigurationKey.KeyIterator` A specialized iterator class for tokenizing a configuration 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
`DefaultConfigurationKey` `append(String property)` Appends the name of a property to this key.
`DefaultConfigurationKey` `append(String property, boolean escape)` Appends the name of a property to this key.
`DefaultConfigurationKey` `appendAttribute(String attr)` Appends an attribute to this configuration key.
`DefaultConfigurationKey` `appendIndex(int index)` Appends an index to this configuration key.
`String` `attributeName(String key)` Extracts the name of the attribute from the given attribute key.
`String` `constructAttributeKey(String key)` Decorates the given key so that it represents an attribute.
`boolean` `equals(Object c)` Checks if two `ConfigurationKey` objects are equal.
`DefaultExpressionEngine` `getExpressionEngine()` Returns the associated default expression engine.
`int` `hashCode()` Returns the hash code for this object.
`boolean` `isAttributeKey(String key)` Tests if the specified key represents an attribute according to the current expression engine.
`DefaultConfigurationKey.KeyIterator` `iterator()` Returns an iterator for iterating over the single components of this configuration key.
`int` `length()` Returns the actual length of this configuration key.
`void` `setExpressionEngine(DefaultExpressionEngine expressionEngine)` Sets the associated expression engine.
`void` `setLength(int len)` Sets the new length of this configuration key.
`String` `toString()` Returns a string representation of this object.
`String` `trim(String key)` Removes delimiters at the beginning and the end of the specified key.
`String` `trimLeft(String key)` Removes leading property delimiters from the specified key.
`String` `trimRight(String key)` Removes trailing property delimiters from the specified key.

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

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

### getExpressionEngine

    public DefaultExpressionEngine getExpressionEngine()

  Returns the associated default expression engine.

  Returns:
    the associated expression engine

### setExpressionEngine

    public void setExpressionEngine(DefaultExpressionEngine expressionEngine)

  Sets the associated expression engine.

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

### 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

### 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

### 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

### length

    public int length()

  Returns the actual length of this configuration key.

  Returns:
    the length of this key

### 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

### equals

    public boolean equals(Object c)

  Checks if two `ConfigurationKey` objects are equal. The method can be called with strings or other objects, too.

  Overrides:
    `equals` in class `Object`
  Parameters:
    `c` - the object to compare
  Returns:
    a flag if both objects are equal

### hashCode

    public int hashCode()

  Returns the hash code for this object.

  Overrides:
    `hashCode` in class `Object`
  Returns:
    the hash code

### toString

    public String toString()

  Returns a string representation of this object. This is the configuration key as a plain string.

  Overrides:
    `toString` in class `Object`
  Returns:
    a string for this object

### 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

### 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

### 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

### 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

### 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

### iterator

    public DefaultConfigurationKey.KeyIterator iterator()

  Returns an iterator for iterating over the single components of this configuration key.

  Returns:
    an iterator for this key

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