A concrete combiner implementation that is able to construct an override
combination.
An override combination means that nodes in the first node
structure take precedence over nodes in the second, or - in other words -
nodes of the second structure are only added to the resulting structure if
they do not occure in the first one. This is especially suitable for dealing
with the properties of configurations that are defined in an
override section of a configuration definition file (hence the
name).
This combiner will iterate over the second node hierarchy and find all nodes
that are not contained in the first hierarchy; these are added to the result.
If a node can be found in both structures, it is checked whether a
combination (in a recursive way) can be constructed for the two, which will
then be added. Per default, nodes are combined, which occur only once in both
structures. This test is implemented in the canCombine()
method.
As is true for the
UnionCombiner , for this combiner
list nodes are important. The addListNode() can be called to
declare certain nodes as list nodes. This has the effect that these nodes
will never be combined.
author: author: href="http://jakarta.apache.org/commons/configuration/team-list.html">Commons author: Configuration team version: $Id: OverrideCombiner.java 439648 2006-09-02 20:42:10Z oheger $ since: 1.3 |