LibreOffice Module xmerge (master) 1
|
This is an implementation of the Iterator
interface.
More...
Public Member Functions | |
NodeIterator (ConverterCapabilities cc, Node node) | |
Standard constructor. More... | |
Object | next () |
Move to next element in the sequence. More... | |
Object | previous () |
Object | start () |
Move to the beginning of the sequence. More... | |
Object | end () |
Object | currentElement () |
Return the current element Object content. More... | |
int | elementCount () |
Return the total element count in the sequence. More... | |
boolean | equivalent (Object obj1, Object obj2) |
A method to allow the difference algorithm to test whether the obj1 and obj2 in the Iterator are considered equal. More... | |
void | refresh () |
A method to force the Iterator to traverse the tree again to refresh the content. More... | |
Object | next () |
Move to next element in the sequence. More... | |
Object | start () |
Move to the beginning of the sequence. More... | |
Object | currentElement () |
Return the current element Object content. More... | |
int | elementCount () |
Return the total element count in the sequence. More... | |
boolean | equivalent (Object obj1, Object obj2) |
A method to allow the difference algorithm to test whether the obj1 and obj2 in the Iterator are considered equal. More... | |
void | refresh () |
A method to force the Iterator to traverse the tree again to refresh the content. More... | |
Protected Member Functions | |
boolean | compareNode (Node node1, Node node2) |
Used to compare two Node objects (type/name/value) and all their children Node objects. More... | |
boolean | childrenEqual (Node node1, Node node2) |
Compare the children of two Node objects. More... | |
abstract boolean | nodeSupported (Node node) |
Check whether a Node is supported. More... | |
Private Member Functions | |
boolean | attributesEqual (Node node1, Node node2) |
Compare attributes of two Node objects. More... | |
void | markTree (Node node) |
Private Attributes | |
List< Node > | nodeList = null |
int | currentPosition = 0 |
final Node | root |
final ConverterCapabilities | cc_ |
This is an implementation of the Iterator
interface.
It will traverse the tree and find Node
sequences.
Note: Once the XML Tree is parsed, then the Iterator
will be a snapshot of that tree. That means even the tree is modified later, then the cached paragraph Node
list will not be updated accordingly. For this reason and for performance reasons this Iterator
does not support any operation methods such as insert, remove or replace. The main purpose of this Iterator
is to be used with difference, not with merge.
Definition at line 44 of file NodeIterator.java.
|
inline |
Standard constructor.
cc | The ConverterCapabilities . |
node | The initial root Node . |
Definition at line 57 of file NodeIterator.java.
References org.openoffice.xmerge.merger.diff.NodeIterator.cc_, org.openoffice.xmerge.merger.diff.NodeIterator.markTree(), org.openoffice.xmerge.merger.diff.NodeIterator.nodeList, and org.openoffice.xmerge.merger.diff.NodeIterator.root.
|
inlineprivate |
Compare attributes of two Node
objects.
This method can be intentionally overridden by any class that extends from NodeIterator
so that it can have its own attribute comparison.
node1 | The first Node to compare. |
node2 | The second Node to compare. |
true
if attributes are equal, false
otherwise. Definition at line 246 of file NodeIterator.java.
References org.openoffice.xmerge.ConverterCapabilities.canConvertAttribute(), org.openoffice.xmerge.merger.diff.NodeIterator.cc_, equal(), i, org.openoffice.xmerge.util.Debug.INFO, org.openoffice.xmerge.util.Debug.log(), and String.
Referenced by org.openoffice.xmerge.merger.diff.NodeIterator.compareNode().
|
inlineprotected |
Compare the children of two Node
objects.
This method can be intentionally overridden by any class that extend from NodeIterator
so that it can have its own children comparison if necessary.
node1 | The first Node to compare. |
node2 | The second Node to compare. |
true
if children are equal, false
otherwise. Reimplemented in org.openoffice.xmerge.merger.diff.CellNodeIterator.
Definition at line 203 of file NodeIterator.java.
References org.openoffice.xmerge.merger.diff.NodeIterator.compareNode(), equal(), and i.
Referenced by org.openoffice.xmerge.merger.diff.NodeIterator.compareNode().
|
inlineprotected |
Used to compare two Node
objects (type/name/value) and all their children Node
objects.
node1 | The first Node to compare. |
node2 | The second Node to compare. |
true
if Node
is equal, false
otherwise. Definition at line 138 of file NodeIterator.java.
References org.openoffice.xmerge.merger.diff.NodeIterator.attributesEqual(), org.openoffice.xmerge.merger.diff.NodeIterator.childrenEqual(), and equal().
Referenced by org.openoffice.xmerge.merger.diff.NodeIterator.childrenEqual(), and org.openoffice.xmerge.merger.diff.NodeIterator.equivalent().
|
inline |
Return the current element Object
content.
Object
at current position. Implements org.openoffice.xmerge.merger.Iterator.
Definition at line 98 of file NodeIterator.java.
References org.openoffice.xmerge.merger.diff.NodeIterator.currentPosition, org.openoffice.xmerge.merger.diff.NodeIterator.nodeList, and Object.
Referenced by org.openoffice.xmerge.merger.diff.NodeIterator.end(), org.openoffice.xmerge.merger.diff.NodeIterator.next(), org.openoffice.xmerge.merger.diff.NodeIterator.previous(), and org.openoffice.xmerge.merger.diff.NodeIterator.start().
|
inline |
Return the total element count in the sequence.
Implements org.openoffice.xmerge.merger.Iterator.
Definition at line 105 of file NodeIterator.java.
References org.openoffice.xmerge.merger.diff.NodeIterator.nodeList.
|
inline |
Definition at line 87 of file NodeIterator.java.
References org.openoffice.xmerge.merger.diff.NodeIterator.currentElement(), org.openoffice.xmerge.merger.diff.NodeIterator.currentPosition, org.openoffice.xmerge.merger.diff.NodeIterator.nodeList, Object, and size.
|
inline |
A method to allow the difference algorithm to test whether the obj1
and obj2
in the Iterator
are considered equal.
As not every Object
in the Iterator
can implement its own equal method, with this equivalent method, we can allow flexibility for the Iterator
to choose a custom way to compare two objects. Two objects can even be compared based on the position in the Iterator
rather than by the content via this option.
obj1 | The first Object |
obj2 | The second Object . |
true
if equal, false
otherwise. Implements org.openoffice.xmerge.merger.Iterator.
Definition at line 109 of file NodeIterator.java.
References org.openoffice.xmerge.merger.diff.NodeIterator.compareNode(), equal(), org.openoffice.xmerge.util.Debug.ERROR, org.openoffice.xmerge.util.Resources.getInstance(), org.openoffice.xmerge.util.Resources.getString(), org.openoffice.xmerge.util.Debug.log(), and String.
|
inlineprivate |
Definition at line 336 of file NodeIterator.java.
References org.openoffice.xmerge.ConverterCapabilities.canConvertTag(), org.openoffice.xmerge.merger.diff.NodeIterator.cc_, i, org.openoffice.xmerge.util.Debug.INFO, org.openoffice.xmerge.util.Debug.log(), org.openoffice.xmerge.merger.diff.NodeIterator.markTree(), org.openoffice.xmerge.merger.diff.NodeIterator.nodeList, org.openoffice.xmerge.merger.diff.NodeIterator.nodeSupported(), and String.
Referenced by org.openoffice.xmerge.merger.diff.NodeIterator.markTree(), org.openoffice.xmerge.merger.diff.NodeIterator.NodeIterator(), and org.openoffice.xmerge.merger.diff.NodeIterator.refresh().
|
inline |
Move to next element in the sequence.
Object
of the next element in the sequence. If there is no next element, then return null
. Implements org.openoffice.xmerge.merger.Iterator.
Definition at line 64 of file NodeIterator.java.
References org.openoffice.xmerge.merger.diff.NodeIterator.currentElement(), org.openoffice.xmerge.merger.diff.NodeIterator.currentPosition, org.openoffice.xmerge.merger.diff.NodeIterator.nodeList, and Object.
Referenced by org.openoffice.xmerge.merger.diff.CharacterParser.parseNodes().
|
abstractprotected |
Check whether a Node
is supported.
This method can be intentionally overridden by any class that extends from NodeIterator
so that it can specify which Node
to support.
node | Node to check. |
true
if Node
is supported, false
otherwise. Reimplemented in org.openoffice.xmerge.merger.diff.CellNodeIterator, org.openoffice.xmerge.merger.diff.ParaNodeIterator, org.openoffice.xmerge.merger.diff.RowIterator, and org.openoffice.xmerge.merger.diff.TextNodeIterator.
Referenced by org.openoffice.xmerge.merger.diff.NodeIterator.markTree().
|
inline |
Definition at line 73 of file NodeIterator.java.
References org.openoffice.xmerge.merger.diff.NodeIterator.currentElement(), org.openoffice.xmerge.merger.diff.NodeIterator.currentPosition, and Object.
|
inline |
A method to force the Iterator
to traverse the tree again to refresh the content.
It is used mainly for Iterator
objects which take a snapshot instead of dynamically traversing the tree. The current position will be set to the beginning.
Implements org.openoffice.xmerge.merger.Iterator.
Definition at line 123 of file NodeIterator.java.
References org.openoffice.xmerge.merger.diff.NodeIterator.currentPosition, org.openoffice.xmerge.merger.diff.NodeIterator.markTree(), org.openoffice.xmerge.merger.diff.NodeIterator.nodeList, and org.openoffice.xmerge.merger.diff.NodeIterator.root.
|
inline |
Move to the beginning of the sequence.
Object
of the first element in the sequence. If it is empty, then return null
. Implements org.openoffice.xmerge.merger.Iterator.
Definition at line 82 of file NodeIterator.java.
References org.openoffice.xmerge.merger.diff.NodeIterator.currentElement(), org.openoffice.xmerge.merger.diff.NodeIterator.currentPosition, and Object.
Referenced by org.openoffice.xmerge.merger.diff.CharacterParser.parseNodes().
|
private |
Definition at line 49 of file NodeIterator.java.
Referenced by org.openoffice.xmerge.merger.diff.NodeIterator.attributesEqual(), org.openoffice.xmerge.merger.diff.NodeIterator.markTree(), and org.openoffice.xmerge.merger.diff.NodeIterator.NodeIterator().
|
private |
Definition at line 47 of file NodeIterator.java.
Referenced by org.openoffice.xmerge.merger.diff.NodeIterator.currentElement(), org.openoffice.xmerge.merger.diff.NodeIterator.end(), org.openoffice.xmerge.merger.diff.NodeIterator.next(), org.openoffice.xmerge.merger.diff.NodeIterator.previous(), org.openoffice.xmerge.merger.diff.NodeIterator.refresh(), and org.openoffice.xmerge.merger.diff.NodeIterator.start().
|
private |
Definition at line 46 of file NodeIterator.java.
Referenced by org.openoffice.xmerge.merger.diff.NodeIterator.currentElement(), org.openoffice.xmerge.merger.diff.NodeIterator.elementCount(), org.openoffice.xmerge.merger.diff.NodeIterator.end(), org.openoffice.xmerge.merger.diff.NodeIterator.markTree(), org.openoffice.xmerge.merger.diff.NodeIterator.next(), org.openoffice.xmerge.merger.diff.NodeIterator.NodeIterator(), and org.openoffice.xmerge.merger.diff.NodeIterator.refresh().
|
private |
Definition at line 48 of file NodeIterator.java.
Referenced by org.openoffice.xmerge.merger.diff.NodeIterator.NodeIterator(), and org.openoffice.xmerge.merger.diff.NodeIterator.refresh().