A base class for node combiner implementations.
A node combiner is an object that knows how two hierarchical node structures can be combined into a single one. Of course, there are many possible ways of implementing such a combination, e.g. constructing a union, an intersection, or an "override" structure (were nodes in the first hierarchy take precedence over nodes in the second hierarchy). This abstract base class only provides some helper methods and defines the common interface for node combiners. Concrete sub classes will implement the diverse combination algorithms.
For some concrete combiner implementations it is important to distinguish whether a node is a single node or whether it belongs to a list structure. Alone from the input structures, the combiner will not always be able to make this decision. So sometimes it may be necessary for the developer to configure the combiner and tell it, which nodes should be treated as list nodes. For this purpose the {@code addListNode()} method exists. Itcan be passed the name of a node, which should be considered a list node.
@version $Id: NodeCombiner.java 1624601 2014-09-12 18:04:36Z oheger $
@since 1.3