Package org.apache.commons.configuration2.tree

# Class DefaultConfigurationKey.KeyIterator

java.lang.Object
org.apache.commons.configuration2.tree.DefaultConfigurationKey.KeyIterator

All Implemented Interfaces:
  `Cloneable`, `Iterator<Object>`

Enclosing class:
  `DefaultConfigurationKey`

public class DefaultConfigurationKey.KeyIterator extends Object implements Iterator<Object>, Cloneable
A specialized iterator class for tokenizing a configuration key. This class implements the normal iterator interface. In addition it provides some specific methods for configuration keys.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `KeyIterator()`
  Constructs a new instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `clone()`
  Creates a clone of this object.
  `String`
  `currentKey()`
  Returns the current key of the iteration (without skipping to the next element).
  `String`
  `currentKey(boolean decorated)`
  Returns the current key of the iteration (without skipping to the next element).
  `int`
  `getIndex()`
  Gets the index value of the current key.
  `boolean`
  `hasIndex()`
  Returns a flag if the current key has an associated index.
  `boolean`
  `hasNext()`
  Checks if there is a next element.
  `boolean`
  `isAttribute()`
  Returns a flag if the current key is an attribute.
  `boolean`
  `isPropertyKey()`
  Returns a flag whether the current key refers to a property (i.e. is no special attribute key).
  `Object`
  `next()`
  Returns the next object in the iteration.
  `String`
  `nextKey()`
  Returns the next key part of this configuration key.
  `String`
  `nextKey(boolean decorated)`
  Returns the next key part of this configuration key.
  `void`
  `remove()`
  Removes the current object in the iteration.

  ### Methods inherited from class java.lang.Object

  `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface java.util.Iterator

  `forEachRemaining`

- ## Constructor Details

  - ### KeyIterator

    public KeyIterator()
    Constructs a new instance.

- ## Method Details

  - ### clone

    public Object clone()
    Creates a clone of this object.
    Overrides:
      `clone` in class `Object`
    Returns:
      a clone of this object

  - ### currentKey

    public String currentKey()
    Returns the current key of the iteration (without skipping to the next element). This is the same key the previous `next()` call had returned. (Short form of `currentKey(false)`.
    Returns:
      the current key

  - ### currentKey

    public String currentKey(boolean decorated)
    Returns the current key of the iteration (without skipping to the next element). The boolean parameter indicates wheter a decorated key should be returned. This affects only attribute keys: if the parameter is false, the attribute markers are stripped from the key; if it is true, they remain.
    Parameters:
      `decorated` - a flag if the decorated key is to be returned
    Returns:
      the current key

  - ### getIndex

    public int getIndex()
    Gets the index value of the current key. If the current key does not have an index, return value is -1. This method can be called after `next()`.
    Returns:
      the index value of the current key

  - ### hasIndex

    public boolean hasIndex()
    Returns a flag if the current key has an associated index. This method can be called after `next()`.
    Returns:
      a flag if the current key has an index

  - ### hasNext

    public boolean hasNext()
    Checks if there is a next element.
    Specified by:
      `hasNext` in interface `Iterator<Object>`
    Returns:
      a flag if there is a next element

  - ### isAttribute

    public boolean isAttribute()
    Returns a flag if the current key is an attribute. This method can be called after `next()`.
    Returns:
      a flag if the current key is an attribute

  - ### isPropertyKey

    public boolean isPropertyKey()
    Returns a flag whether the current key refers to a property (i.e. is no special attribute key). Usually this method will return the opposite of `isAttribute()`, but if the delimiters for normal properties and attributes are set to the same string, it is possible that both methods return true.
    Returns:
      a flag if the current key is a property key
    See Also:
      - `isAttribute()`

  - ### next

    public Object next()
    Returns the next object in the iteration.
    Specified by:
      `next` in interface `Iterator<Object>`
    Returns:
      the next object

  - ### nextKey

    public String nextKey()
    Returns the next key part of this configuration key. This is a short form of `nextKey(false)`.
    Returns:
      the next key part

  - ### nextKey

    public String nextKey(boolean decorated)
    Returns the next key part of this configuration key. The boolean parameter indicates wheter a decorated key should be returned. This affects only attribute keys: if the parameter is false, the attribute markers are stripped from the key; if it is true, they remain.
    Parameters:
      `decorated` - a flag if the decorated key is to be returned
    Returns:
      the next key part

  - ### remove

    public void remove()
    Removes the current object in the iteration. This method is not supported by this iterator type, so an exception is thrown.
    Specified by:
      `remove` in interface `Iterator<Object>`