# Package org.apache.commons.configuration2.tree

A package with helper and utility classes used by hierarchical configurations.

- Interface Summary
  Interface | Description
  --- | ---
  ConfigurationNodeVisitor<T> | Definition of a Visitor interface for a configuration node structure.
  ExpressionEngine | Definition of an interface for evaluating keys for hierarchical configurations.
  InMemoryNodeModelSupport | A specialized version of the `NodeModelSupport` interface which allows querying an `InMemoryNodeModel`.
  NodeHandler<T> | Definition of an interface for accessing the data of a configuration node.
  NodeKeyResolver<T> | Definition of an interface which allows resolving a (property) key for different manipulating operations.
  NodeMatcher<C> | An interface for matching nodes based on specific criteria.
  NodeModel<T> | Definition of an interface describing a model based on a nodes structure.
  NodeModelSupport<T> | An interface to be implemented by objects that support a `NodeModel`.
  ReferenceNodeHandler | An extension of the `NodeHandler` interface which allows access to so-called references stored for a node.

- Class Summary
  Class | Description
  --- | ---
  ConfigurationNodeVisitorAdapter<T> | A simple adapter class that simplifies writing custom node visitor implementations.
  DefaultConfigurationKey | A simple class that supports creation of and iteration on configuration keys supported by a `DefaultExpressionEngine` object.
  DefaultExpressionEngine | A default implementation of the `ExpressionEngine` interface providing the "native" expression language for hierarchical configurations.
  DefaultExpressionEngineSymbols | A class representing the various symbols that are supported in keys recognized by `DefaultExpressionEngine`.
  DefaultExpressionEngineSymbols.Builder | A builder class for creating instances of `DefaultExpressionEngineSymbols`.
  ImmutableNode | An immutable default implementation for configuration nodes.
  ImmutableNode.Builder | A builder class for creating instances of `ImmutableNode`.
  InMemoryNodeModel | A specialized node model implementation which operates on `ImmutableNode` structures.
  MergeCombiner | A specialized implementation of the `NodeCombiner` interface that performs a merge from two passed in node hierarchies.
  NodeAddData<T> | A simple data class used by `ExpressionEngine` to store the results of the `prepareAdd()` operation.
  NodeCombiner | A base class for node combiner implementations.
  NodeHandlerDecorator<T> | An abstract base class for decorators of a `NodeHandler`.
  NodeSelector | A class for selecting a specific node based on a key or a set of keys.
  NodeTreeWalker | A class providing different algorithms for traversing a hierarchy of configuration nodes.
  NodeUpdateData<T> | A simple data class used by node models to store parameters of an update operation.
  OverrideCombiner | A concrete combiner implementation that is able to construct an override combination.
  QueryResult<T> | A data class representing a single query result produced by an `ExpressionEngine`.
  TrackedNodeModel | A specialized `NodeModel` implementation that uses a tracked node managed by an `InMemoryNodeModel` object as root node.
  TreeUtils | Utility methods.
  UnionCombiner | A specialized implementation of the `NodeCombiner` interface that constructs a union from two passed in node hierarchies.

- Enum Summary
  Enum | Description
  --- | ---
  NodeNameMatchers | An enumeration class with several pre-defined `NodeMatcher` implementations based on node names.