Part of fix for XALANJ-2294.  Refactored UnionIterator so that it is derived
from a new MultiValuedNodeHeapIterator class.  The latter is responsible for
the basic management of a heap, each of whose nodes contains multiple DTM
node handles, while the former handles the specific case of implementing a
union of other iterators.

In the original heap implementation of UnionIterator, each node contained a
DTMAxisIterator, but in MultiValuedNodeHeapIterator, each node contains
something that returns node handles; that doesn't have to be a DTMAxisIterator,
though in the of UnionIterator, it still is.

Reviewed by Christine Li (jycli () ca ! ibm ! com)

2 files changed