org.dom4j.util
public class NodeComparator extends Object implements Comparator
NodeComparator
is a {@link Comparator}of Node instances which
is capable of comparing Nodes for equality based on their values.
Version: $Revision: 1.10 $
Method Summary | |
---|---|
int | compare(Object o1, Object o2)
Compares its two arguments for order. |
int | compare(Node n1, Node n2) |
int | compare(Document n1, Document n2) |
int | compare(Element n1, Element n2) |
int | compare(Attribute n1, Attribute n2) |
int | compare(QName n1, QName n2) |
int | compare(Namespace n1, Namespace n2) |
int | compare(CharacterData t1, CharacterData t2) |
int | compare(DocumentType o1, DocumentType o2) |
int | compare(Entity n1, Entity n2) |
int | compare(ProcessingInstruction n1, ProcessingInstruction n2) |
int | compare(String o1, String o2) |
int | compareContent(Branch b1, Branch b2) |
The implementor must ensure that sgn(compare(x, y)) == -sgn(compare(y, x)) for all x and y. (This implies that compare(x, y) must throw an exception if and only if compare(y, x) throws an exception.)
The implementor must also ensure that the relation is transitive: ((compare(x, y)>0) && (compare(y, z)>0)) implies compare(x, z)>0.
Finally, the implementer must ensure that compare(x, y)==0 implies that sgn(compare(x, z))==sgn(compare(y, z)) for all z.
It is generally the case, but not strictly required that (compare(x, y)==0) == (x.equals(y)). Generally speaking, any comparator that violates this condition should clearly indicate this fact. The recommended language is "Note: this comparator imposes orderings that are inconsistent with equals."
Parameters: o1 the first object to be compared. o2 the second object to be compared.
Returns: a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.