Definition of an interface describing a model based on a nodes structure.
This interface can be used for dealing with hierarchical, tree-like data. It defines basic operations for manipulating the tree structure which use keys to select the nodes affected.
The idea behind this interface is that concrete implementations can be used by hierarchical configurations. This makes it possible to integrate various hierarchical structures with the API of a hierarchical configuration, e.g. configuration nodes stored in memory, JNDI contexts, or other structures. The configuration object interacts with the underlying data structure via this interface. For more complex operations access to an {@link ExpressionEngine}may be required in order to interpret the passed in keys. For these purposes a {@link NodeKeyResolver} has to be provided which knows how to deal withkeys.
@version $Id: NodeModel.java 1624601 2014-09-12 18:04:36Z oheger $
@since 2.0
@param < T> the type of the nodes managed by this model