org.mmbase.util
Class NodeComparator

java.lang.Object
  |
  +--org.mmbase.util.NodeComparator
All Implemented Interfaces:
java.util.Comparator

public class NodeComparator
extends java.lang.Object
implements java.util.Comparator

This class implements the Comparator interface for comparing MMObjectNodes. At forhand you specify in which fields a specified nodes should be compared, these fields may not have a null value.

Version:
5 Jan 2001
Author:
Pierre van Rooden

Field Summary
static java.lang.String DOWN
           
static java.lang.String UP
           
 
Constructor Summary
NodeComparator(java.util.Vector fields)
          Simple constructor that uses the default sort order (UP).
NodeComparator(java.util.Vector fields, java.util.Vector sortDirs)
          Constructor in which you spercify the sort order (UP or DOWN) per field.
 
Method Summary
 int compare(java.lang.Object o1, java.lang.Object o2)
          The two message nodes will be compared using the compare function of the values of their fields.
 boolean equals(java.lang.Object obj)
          Returns whether another object is equal to this comparator (that is, compare the same fields in the same order).
 int hashCode()
          Returns the comparator's hash code.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

UP

public static final java.lang.String UP

DOWN

public static final java.lang.String DOWN
Constructor Detail

NodeComparator

public NodeComparator(java.util.Vector fields)
Simple constructor that uses the default sort order (UP).
Parameters:
fields - the fields on which the message nodes get compared.

NodeComparator

public NodeComparator(java.util.Vector fields,
                      java.util.Vector sortDirs)
Constructor in which you spercify the sort order (UP or DOWN) per field.
Parameters:
fields - the fields on which the message nodes get compared.
sortDirs - the sort directions (UP or DOWN) for each field.
Method Detail

compare

public int compare(java.lang.Object o1,
                   java.lang.Object o2)
The two message nodes will be compared using the compare function of the values of their fields. Only Comparable values can be used (String, Numbers, Date), as well as Boolean values. In other cases it's assumed that the values cannot be ordered.
Note: this class assumes that values in fields are of similar types (comparable to each other).
Specified by:
compare in interface java.util.Comparator
Parameters:
o1 - the first object to compare
o2 - the second object to compare
Returns:
0 if both objects are equal, -1 if object 1 is 'less than' object 2, and +1 if object 1 is 'greater than' object 2.

equals

public boolean equals(java.lang.Object obj)
Returns whether another object is equal to this comparator (that is, compare the same fields in the same order).
Specified by:
equals in interface java.util.Comparator
Overrides:
equals in class java.lang.Object
Parameters:
obj - the object to compare
Returns:
true if the objects are equal
Throws:
java.lang.ClassCastException -  

hashCode

public int hashCode()
Returns the comparator's hash code.
Overrides:
hashCode in class java.lang.Object


MMBase 2001