Class NodeSelector
- java.lang.Object
-
- org.apache.commons.configuration2.tree.NodeSelector
-
public class NodeSelector extends java.lang.Object
A class for selecting a specific node based on a key or a set of keys.
An instance of this class is initialized with the key of a node. It is also possible to concatenate multiple keys - e.g. if a sub key is to be constructed from another sub key.
NodeSelector
provides theselect()
method which evaluates the wrapped keys on a specified root node and returns the resulting unique target node. The class expects that the key(s) stored in an instance select exactly one target node. If this is not the case, result is null indicating that the selection criteria are not sufficient.Implementation node: Instances of this class are immutable. They can be shared between arbitrary components.
- Since:
- 2.0
- Version:
- $Id: NodeSelector.java 1790899 2017-04-10 21:56:46Z ggregory $
-
-
Constructor Summary
Constructors Constructor Description NodeSelector(java.lang.String key)
Creates a new instance ofNodeSelector
and initializes it with the key to the target node.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(java.lang.Object obj)
Compares this object with another one.int
hashCode()
Returns a hash code for this object.ImmutableNode
select(ImmutableNode root, NodeKeyResolver<ImmutableNode> resolver, NodeHandler<ImmutableNode> handler)
Applies thisNodeSelector
on the specified root node.NodeSelector
subSelector(java.lang.String subKey)
Creates a subNodeSelector
object which uses the key(s) of this selector plus the specified key as selection criteria.java.lang.String
toString()
Returns a string representation for this object.
-
-
-
Method Detail
-
select
public ImmutableNode select(ImmutableNode root, NodeKeyResolver<ImmutableNode> resolver, NodeHandler<ImmutableNode> handler)
Applies thisNodeSelector
on the specified root node. This method applies the selection criteria stored in this object and tries to determine a single target node. If this is successful, the target node is returned. Otherwise, result is null.- Parameters:
root
- the root node on which to apply this selectorresolver
- theNodeKeyResolver
handler
- theNodeHandler
- Returns:
- the selected target node or null
-
subSelector
public NodeSelector subSelector(java.lang.String subKey)
Creates a subNodeSelector
object which uses the key(s) of this selector plus the specified key as selection criteria. This is useful when another selection is to be performed on the results of a first selector.- Parameters:
subKey
- the additional key for the sub selector- Returns:
- the sub
NodeSelector
instance
-
equals
public boolean equals(java.lang.Object obj)
Compares this object with another one. Two instances ofNodeSelector
are considered equal if they have the same keys as selection criteria.- Overrides:
equals
in classjava.lang.Object
- Parameters:
obj
- the object to be compared- Returns:
- a flag whether these objects are equal
-
hashCode
public int hashCode()
Returns a hash code for this object.- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- a hash code
-
toString
public java.lang.String toString()
Returns a string representation for this object. This string contains the keys to be used as selection criteria.- Overrides:
toString
in classjava.lang.Object
- Returns:
- a string for this object
-
-