## Uses of Class
org.apache.commons.configuration2.tree.ImmutableNode

- Packages that use ImmutableNode
  Package | Description
  --- | ---
  org.apache.commons.configuration2 | The Configuration main package.
  org.apache.commons.configuration2.plist | Configuration classes supporting NeXT / OpenStep /GNUStep style configuration.
  org.apache.commons.configuration2.tree | A package with helper and utility classes used by hierarchical configurations.

- - ### Uses of ImmutableNode in org.apache.commons.configuration2

    Methods in org.apache.commons.configuration2 that return types with arguments of type ImmutableNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `List<HierarchicalConfiguration<ImmutableNode>>` | BaseHierarchicalConfiguration.`childConfigurationsAt​(String key)` | Returns a list with sub configurations for all child nodes of the node selected by the given key.
    `List<HierarchicalConfiguration<ImmutableNode>>` | BaseHierarchicalConfiguration.`childConfigurationsAt​(String key, boolean supportUpdates)` | Returns a list with sub configurations for all child nodes of the node selected by the given key allowing the caller to specify the `supportUpdates` flag.
    `protected NodeModel<ImmutableNode>` | BaseHierarchicalConfiguration.`cloneNodeModel()` | Creates a clone of the node model.
    `protected NodeModel<ImmutableNode>` | SubnodeConfiguration.`cloneNodeModel()` | Creates a clone of the node model.
    `HierarchicalConfiguration<ImmutableNode>` | BaseHierarchicalConfiguration.`configurationAt​(String key)` | Returns a hierarchical subnode configuration for the node specified by the given key.
    `HierarchicalConfiguration<ImmutableNode>` | BaseHierarchicalConfiguration.`configurationAt​(String key, boolean supportUpdates)` | Returns a hierarchical sub configuration object that wraps the configuration node specified by the given key.
    `HierarchicalConfiguration<ImmutableNode>` | DynamicCombinedConfiguration.`configurationAt​(String key)` |
    `HierarchicalConfiguration<ImmutableNode>` | DynamicCombinedConfiguration.`configurationAt​(String key, boolean supportUpdates)` |
    `HierarchicalConfiguration<ImmutableNode>` | PatternSubtreeConfigurationWrapper.`configurationAt​(String key)` |
    `HierarchicalConfiguration<ImmutableNode>` | PatternSubtreeConfigurationWrapper.`configurationAt​(String key, boolean supportUpdates)` |
    `List<HierarchicalConfiguration<ImmutableNode>>` | BaseHierarchicalConfiguration.`configurationsAt​(String key)` | Returns a list of sub configurations for all configuration nodes selected by the given key.
    `List<HierarchicalConfiguration<ImmutableNode>>` | BaseHierarchicalConfiguration.`configurationsAt​(String key, boolean supportUpdates)` | Returns a list of sub configurations for all configuration nodes selected by the given key allowing the caller to specify the `supportUpdates` flag.
    `List<HierarchicalConfiguration<ImmutableNode>>` | DynamicCombinedConfiguration.`configurationsAt​(String key)` |
    `List<HierarchicalConfiguration<ImmutableNode>>` | PatternSubtreeConfigurationWrapper.`configurationsAt​(String key)` |

    Methods in org.apache.commons.configuration2 with parameters of type ImmutableNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected Map<String,​Object>` | AbstractYAMLBasedConfiguration.`constructMap​(ImmutableNode node)` | Constructs a YAML map, i.e.
    `protected abstract void` | BaseHierarchicalConfiguration.BuilderVisitor.`insert​(ImmutableNode newNode, ImmutableNode parent, ImmutableNode sibling1, ImmutableNode sibling2, ReferenceNodeHandler refHandler)` | Inserts a new node into the structure constructed by this builder.
    `protected abstract void` | BaseHierarchicalConfiguration.BuilderVisitor.`update​(ImmutableNode node, Object reference, ReferenceNodeHandler refHandler)` | Updates a node that already existed in the original hierarchy.
    `void` | BaseHierarchicalConfiguration.BuilderVisitor.`visitBeforeChildren​(ImmutableNode node, NodeHandler<ImmutableNode> handler)` |

    Method parameters in org.apache.commons.configuration2 with type arguments of type ImmutableNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | DynamicCombinedConfiguration.`addNodesInternal​(String key, Collection<? extends ImmutableNode> nodes)` |
    `protected void` | PatternSubtreeConfigurationWrapper.`addNodesInternal​(String key, Collection<? extends ImmutableNode> nodes)` |
    `void` | BaseHierarchicalConfiguration.BuilderVisitor.`visitBeforeChildren​(ImmutableNode node, NodeHandler<ImmutableNode> handler)` |

    Constructor parameters in org.apache.commons.configuration2 with type arguments of type ImmutableNode
    Constructor | Description
    --- | ---
    `AbstractYAMLBasedConfiguration​(HierarchicalConfiguration<ImmutableNode> c)` | Creates a new instance of `AbstractYAMLBasedConfiguration` as a copy of the specified configuration.
    `BaseHierarchicalConfiguration​(HierarchicalConfiguration<ImmutableNode> c)` | Creates a new instance of `BaseHierarchicalConfiguration` and copies all data contained in the specified configuration into the new one.
    `BaseHierarchicalConfiguration​(NodeModel<ImmutableNode> model)` | Creates a new instance of `BaseHierarchicalConfiguration` and initializes it with the given `NodeModel`.
    `INIConfiguration​(HierarchicalConfiguration<ImmutableNode> c)` | Creates a new instance of `INIConfiguration` with the content of the specified `HierarchicalConfiguration`.
    `JSONConfiguration​(HierarchicalConfiguration<ImmutableNode> c)` | Creates a new instance of `JSONConfiguration` as a copy of the specified configuration.
    `PatternSubtreeConfigurationWrapper​(HierarchicalConfiguration<ImmutableNode> config, String path)` | Constructor
    `XMLConfiguration​(HierarchicalConfiguration<ImmutableNode> c)` | Creates a new instance of `XMLConfiguration` and copies the content of the passed in configuration into this object.
    `YAMLConfiguration​(HierarchicalConfiguration<ImmutableNode> c)` | Creates a new instance of `YAMLConfiguration` as a copy of the specified configuration.

  - ### Uses of ImmutableNode in org.apache.commons.configuration2.plist

    Constructor parameters in org.apache.commons.configuration2.plist with type arguments of type ImmutableNode
    Constructor | Description
    --- | ---
    `PropertyListConfiguration​(HierarchicalConfiguration<ImmutableNode> c)` | Creates a new instance of `PropertyListConfiguration` and copies the content of the specified configuration into this object.
    `XMLPropertyListConfiguration​(HierarchicalConfiguration<ImmutableNode> configuration)` | Creates a new instance of `XMLPropertyListConfiguration` and copies the content of the specified configuration into this object.

  - ### Uses of ImmutableNode in org.apache.commons.configuration2.tree

    Fields in org.apache.commons.configuration2.tree with type parameters of type ImmutableNode
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected static NodeHandler<ImmutableNode>` | NodeCombiner.`HANDLER` | A default handler object for immutable nodes.

    Methods in org.apache.commons.configuration2.tree that return ImmutableNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `ImmutableNode` | ImmutableNode.`addChild​(ImmutableNode child)` | Creates a new `ImmutableNode` instance which is a copy of this object, but has the given child node added.
    `protected ImmutableNode` | MergeCombiner.`canCombine​(ImmutableNode node2, ImmutableNode child, List<ImmutableNode> children2)` | Tests if the first node can be combined with the second node.
    `protected ImmutableNode` | OverrideCombiner.`canCombine​(ImmutableNode node1, ImmutableNode node2, ImmutableNode child)` | Tests if a child node of the second node can be combined with the given child node of the first node.
    `ImmutableNode` | MergeCombiner.`combine​(ImmutableNode node1, ImmutableNode node2)` | Combines the given nodes to a new union node.
    `abstract ImmutableNode` | NodeCombiner.`combine​(ImmutableNode node1, ImmutableNode node2)` | Combines the hierarchies represented by the given root nodes.
    `ImmutableNode` | OverrideCombiner.`combine​(ImmutableNode node1, ImmutableNode node2)` | Constructs an override combination for the passed in node structures.
    `ImmutableNode` | UnionCombiner.`combine​(ImmutableNode node1, ImmutableNode node2)` | Combines the given nodes to a new union node.
    `ImmutableNode` | ImmutableNode.Builder.`create()` | Creates a new `ImmutableNode` instance based on the properties set for this builder.
    `protected ImmutableNode` | UnionCombiner.`findCombineNode​(ImmutableNode node1, ImmutableNode node2, ImmutableNode child)` | Tries to find a child node of the second source node, with which a child of the first source node can be combined.
    `ImmutableNode` | InMemoryNodeModel.`getInMemoryRepresentation()` | Gets a representation of the data stored in this model in form of a nodes hierarchy of `ImmutableNode` objects.
    `ImmutableNode` | NodeModel.`getInMemoryRepresentation()` | Gets a representation of the data stored in this model in form of a nodes hierarchy of `ImmutableNode` objects.
    `ImmutableNode` | TrackedNodeModel.`getInMemoryRepresentation()` | Gets a representation of the data stored in this model in form of a nodes hierarchy of `ImmutableNode` objects.
    `ImmutableNode` | InMemoryNodeModel.`getRootNode()` | Gets the root node of this mode.
    `ImmutableNode` | InMemoryNodeModel.`getTrackedNode​(NodeSelector selector)` | Gets the current `ImmutableNode` instance associated with the given `NodeSelector`.
    `ImmutableNode` | ImmutableNode.`removeAttribute​(String name)` | Returns a new `ImmutableNode` instance which is a copy of this object, but with the specified attribute removed.
    `ImmutableNode` | ImmutableNode.`removeChild​(ImmutableNode child)` | Returns a new `ImmutableNode` instance which is a copy of this object, but with the given child node removed.
    `ImmutableNode` | ImmutableNode.`replaceChild​(ImmutableNode oldChild, ImmutableNode newChild)` | Returns a new `ImmutableNode` instance which is a copy of this object, but with the given child replaced by the new one.
    `ImmutableNode` | ImmutableNode.`replaceChildren​(Collection<ImmutableNode> newChildren)` | Returns a new `ImmutableNode` instance which is a copy of this object, but with the children replaced by the ones in the passed in collection.
    `ImmutableNode` | NodeSelector.`select​(ImmutableNode root, NodeKeyResolver<ImmutableNode> resolver, NodeHandler<ImmutableNode> handler)` | Applies this `NodeSelector` on the specified root node.
    `ImmutableNode` | ImmutableNode.`setAttribute​(String name, Object value)` | Returns a new `ImmutableNode` instance which is a copy of this object, but with the specified attribute set to the given value.
    `ImmutableNode` | ImmutableNode.`setAttributes​(Map<String,​?> newAttributes)` | Returns a new `ImmutableNode` instance which is a copy of this object, but with all attributes added defined by the given map.
    `ImmutableNode` | ImmutableNode.`setName​(String name)` | Creates a new `ImmutableNode` instance which is a copy of this object with the name changed to the passed in value.
    `ImmutableNode` | ImmutableNode.`setValue​(Object newValue)` | Creates a new `ImmutableNode` instance which is a copy of this object with the value changed to the passed in value.

    Methods in org.apache.commons.configuration2.tree that return types with arguments of type ImmutableNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `List<QueryResult<ImmutableNode>>` | InMemoryNodeModel.`clearTree​(String key, NodeKeyResolver<ImmutableNode> resolver)` | Removes the sub trees defined by the given key from this model.
    `List<QueryResult<ImmutableNode>>` | InMemoryNodeModel.`clearTree​(String key, NodeSelector selector, NodeKeyResolver<ImmutableNode> resolver)` | Clears a whole sub tree using a tracked node as root node.
    `List<QueryResult<ImmutableNode>>` | TrackedNodeModel.`clearTree​(String key, NodeKeyResolver<ImmutableNode> resolver)` |
    `List<ImmutableNode>` | ImmutableNode.`getChildren()` | Gets a list with the children of this node.
    `List<ImmutableNode>` | ImmutableNode.`getChildren​(String name)` | Returns a list with the children of this node.
    `NodeHandler<ImmutableNode>` | InMemoryNodeModel.`getNodeHandler()` | Gets a `NodeHandler` for dealing with the nodes managed by this model.
    `NodeHandler<ImmutableNode>` | TrackedNodeModel.`getNodeHandler()` |
    `NodeHandler<ImmutableNode>` | InMemoryNodeModel.`getTrackedNodeHandler​(NodeSelector selector)` | Gets a `NodeHandler` for a tracked node.
    `Iterator<ImmutableNode>` | ImmutableNode.`iterator()` |
    `Stream<ImmutableNode>` | ImmutableNode.`stream()` | Returns a sequential `Stream` with this node as its source.

    Methods in org.apache.commons.configuration2.tree with parameters of type ImmutableNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | MergeCombiner.`addAttributes​(ImmutableNode.Builder result, ImmutableNode node1, ImmutableNode node2)` | Handles the attributes during a combination process.
    `protected void` | OverrideCombiner.`addAttributes​(ImmutableNode.Builder result, ImmutableNode node1, ImmutableNode node2)` | Handles the attributes during a combination process.
    `ImmutableNode` | ImmutableNode.`addChild​(ImmutableNode child)` | Creates a new `ImmutableNode` instance which is a copy of this object, but has the given child node added.
    `ImmutableNode.Builder` | ImmutableNode.Builder.`addChild​(ImmutableNode c)` | Adds a child node to this builder.
    `protected ImmutableNode` | MergeCombiner.`canCombine​(ImmutableNode node2, ImmutableNode child, List<ImmutableNode> children2)` | Tests if the first node can be combined with the second node.
    `protected ImmutableNode` | OverrideCombiner.`canCombine​(ImmutableNode node1, ImmutableNode node2, ImmutableNode child)` | Tests if a child node of the second node can be combined with the given child node of the first node.
    `ImmutableNode` | MergeCombiner.`combine​(ImmutableNode node1, ImmutableNode node2)` | Combines the given nodes to a new union node.
    `abstract ImmutableNode` | NodeCombiner.`combine​(ImmutableNode node1, ImmutableNode node2)` | Combines the hierarchies represented by the given root nodes.
    `ImmutableNode` | OverrideCombiner.`combine​(ImmutableNode node1, ImmutableNode node2)` | Constructs an override combination for the passed in node structures.
    `ImmutableNode` | UnionCombiner.`combine​(ImmutableNode node1, ImmutableNode node2)` | Combines the given nodes to a new union node.
    `protected ImmutableNode` | UnionCombiner.`findCombineNode​(ImmutableNode node1, ImmutableNode node2, ImmutableNode child)` | Tries to find a child node of the second source node, with which a child of the first source node can be combined.
    `Object` | ReferenceNodeHandler.`getReference​(ImmutableNode node)` | Gets the reference object associated with the specified node.
    `boolean` | NodeCombiner.`isListNode​(ImmutableNode node)` | Checks if a node is a list node.
    `void` | InMemoryNodeModel.`mergeRoot​(ImmutableNode node, String rootName, Map<ImmutableNode,​?> references, Object rootRef, NodeKeyResolver<ImmutableNode> resolver)` | Merges the root node of this model with the specified node.
    `static void` | TreeUtils.`printTree​(PrintStream stream, ImmutableNode result)` | Print out the data in the configuration.
    `ImmutableNode` | ImmutableNode.`removeChild​(ImmutableNode child)` | Returns a new `ImmutableNode` instance which is a copy of this object, but with the given child node removed.
    `ImmutableNode` | ImmutableNode.`replaceChild​(ImmutableNode oldChild, ImmutableNode newChild)` | Returns a new `ImmutableNode` instance which is a copy of this object, but with the given child replaced by the new one.
    `void` | InMemoryNodeModel.`replaceRoot​(ImmutableNode newRoot, NodeKeyResolver<ImmutableNode> resolver)` | Replaces the root node of this model.
    `void` | InMemoryNodeModel.`replaceTrackedNode​(NodeSelector selector, ImmutableNode newNode)` | Replaces a tracked node by another node.
    `ImmutableNode` | NodeSelector.`select​(ImmutableNode root, NodeKeyResolver<ImmutableNode> resolver, NodeHandler<ImmutableNode> handler)` | Applies this `NodeSelector` on the specified root node.
    `void` | InMemoryNodeModel.`setRootNode​(ImmutableNode newRoot)` | Sets a new root node for this model.
    `void` | TrackedNodeModel.`setRootNode​(ImmutableNode newRoot)` |

    Method parameters in org.apache.commons.configuration2.tree with type arguments of type ImmutableNode
    Modifier and Type | Method | Description
    --- | --- | ---
    `ImmutableNode.Builder` | ImmutableNode.Builder.`addChildren​(Collection<? extends ImmutableNode> children)` | Adds multiple child nodes to this builder.
    `void` | InMemoryNodeModel.`addNodes​(String key, Collection<? extends ImmutableNode> nodes, NodeKeyResolver<ImmutableNode> resolver)` |
    `void` | InMemoryNodeModel.`addNodes​(String key, Collection<? extends ImmutableNode> nodes, NodeKeyResolver<ImmutableNode> resolver)` |
    `void` | InMemoryNodeModel.`addNodes​(String key, NodeSelector selector, Collection<? extends ImmutableNode> nodes, NodeKeyResolver<ImmutableNode> resolver)` | Adds new nodes using a tracked node as root node.
    `void` | InMemoryNodeModel.`addNodes​(String key, NodeSelector selector, Collection<? extends ImmutableNode> nodes, NodeKeyResolver<ImmutableNode> resolver)` | Adds new nodes using a tracked node as root node.
    `void` | TrackedNodeModel.`addNodes​(String key, Collection<? extends ImmutableNode> nodes, NodeKeyResolver<ImmutableNode> resolver)` |
    `void` | TrackedNodeModel.`addNodes​(String key, Collection<? extends ImmutableNode> nodes, NodeKeyResolver<ImmutableNode> resolver)` |
    `void` | InMemoryNodeModel.`addProperty​(String key, Iterable<?> values, NodeKeyResolver<ImmutableNode> resolver)` |
    `void` | InMemoryNodeModel.`addProperty​(String key, NodeSelector selector, Iterable<?> values, NodeKeyResolver<ImmutableNode> resolver)` | Adds new property values using a tracked node as root node.
    `void` | TrackedNodeModel.`addProperty​(String key, Iterable<?> values, NodeKeyResolver<ImmutableNode> resolver)` |
    `protected ImmutableNode` | MergeCombiner.`canCombine​(ImmutableNode node2, ImmutableNode child, List<ImmutableNode> children2)` | Tests if the first node can be combined with the second node.
    `void` | InMemoryNodeModel.`clear​(NodeKeyResolver<ImmutableNode> resolver)` | Removes all data from this model.
    `void` | TrackedNodeModel.`clear​(NodeKeyResolver<ImmutableNode> resolver)` | Removes all data from this model.
    `void` | InMemoryNodeModel.`clearProperty​(String key, NodeKeyResolver<ImmutableNode> resolver)` | Clears the value of a property.
    `void` | InMemoryNodeModel.`clearProperty​(String key, NodeSelector selector, NodeKeyResolver<ImmutableNode> resolver)` | Clears a property using a tracked node as root node.
    `void` | TrackedNodeModel.`clearProperty​(String key, NodeKeyResolver<ImmutableNode> resolver)` |
    `List<QueryResult<ImmutableNode>>` | InMemoryNodeModel.`clearTree​(String key, NodeKeyResolver<ImmutableNode> resolver)` | Removes the sub trees defined by the given key from this model.
    `List<QueryResult<ImmutableNode>>` | InMemoryNodeModel.`clearTree​(String key, NodeSelector selector, NodeKeyResolver<ImmutableNode> resolver)` | Clears a whole sub tree using a tracked node as root node.
    `List<QueryResult<ImmutableNode>>` | TrackedNodeModel.`clearTree​(String key, NodeKeyResolver<ImmutableNode> resolver)` |
    `void` | InMemoryNodeModel.`mergeRoot​(ImmutableNode node, String rootName, Map<ImmutableNode,​?> references, Object rootRef, NodeKeyResolver<ImmutableNode> resolver)` | Merges the root node of this model with the specified node.
    `void` | InMemoryNodeModel.`mergeRoot​(ImmutableNode node, String rootName, Map<ImmutableNode,​?> references, Object rootRef, NodeKeyResolver<ImmutableNode> resolver)` | Merges the root node of this model with the specified node.
    `ImmutableNode` | ImmutableNode.`replaceChildren​(Collection<ImmutableNode> newChildren)` | Returns a new `ImmutableNode` instance which is a copy of this object, but with the children replaced by the ones in the passed in collection.
    `void` | InMemoryNodeModel.`replaceRoot​(ImmutableNode newRoot, NodeKeyResolver<ImmutableNode> resolver)` | Replaces the root node of this model.
    `ImmutableNode` | NodeSelector.`select​(ImmutableNode root, NodeKeyResolver<ImmutableNode> resolver, NodeHandler<ImmutableNode> handler)` | Applies this `NodeSelector` on the specified root node.
    `ImmutableNode` | NodeSelector.`select​(ImmutableNode root, NodeKeyResolver<ImmutableNode> resolver, NodeHandler<ImmutableNode> handler)` | Applies this `NodeSelector` on the specified root node.
    `Collection<NodeSelector>` | InMemoryNodeModel.`selectAndTrackNodes​(String key, NodeKeyResolver<ImmutableNode> resolver)` | Allows tracking all nodes selected by a key.
    `void` | InMemoryNodeModel.`setProperty​(String key, Object value, NodeKeyResolver<ImmutableNode> resolver)` |
    `void` | InMemoryNodeModel.`setProperty​(String key, NodeSelector selector, Object value, NodeKeyResolver<ImmutableNode> resolver)` | Sets the value of a property using a tracked node as root node.
    `void` | TrackedNodeModel.`setProperty​(String key, Object value, NodeKeyResolver<ImmutableNode> resolver)` |
    `Collection<NodeSelector>` | InMemoryNodeModel.`trackChildNodes​(String key, NodeKeyResolver<ImmutableNode> resolver)` | Tracks all nodes which are children of the node selected by the passed in key.
    `NodeSelector` | InMemoryNodeModel.`trackChildNodeWithCreation​(String key, String childName, NodeKeyResolver<ImmutableNode> resolver)` | Tracks a node which is a child of another node selected by the passed in key.
    `void` | InMemoryNodeModel.`trackNode​(NodeSelector selector, NodeKeyResolver<ImmutableNode> resolver)` | Adds a node to be tracked.

    Constructors in org.apache.commons.configuration2.tree with parameters of type ImmutableNode
    Constructor | Description
    --- | ---
    `InMemoryNodeModel​(ImmutableNode root)` | Creates a new instance of `InMemoryNodeModel` and initializes it from the given root node.