Package org.jfree.util
Class ClassComparator
- java.lang.Object
-
- org.jfree.util.ClassComparator
-
- All Implemented Interfaces:
java.io.Serializable
,java.util.Comparator
public class ClassComparator extends java.lang.Object implements java.util.Comparator, java.io.Serializable
The class comparator can be used to compare and sort classes and their superclasses. The comparator is not able to compare classes which have no relation...- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private static long
serialVersionUID
For serialization.
-
Constructor Summary
Constructors Constructor Description ClassComparator()
Defaultconstructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compare(java.lang.Object o1, java.lang.Object o2)
Compares its two arguments for order.boolean
isComparable(java.lang.Class c1, java.lang.Class c2)
Checks, whether the given classes are comparable.
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
For serialization.- See Also:
- Constant Field Values
-
-
Method Detail
-
compare
public int compare(java.lang.Object o1, java.lang.Object o2)
Compares its two arguments for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.Note: throws ClassCastException if the arguments' types prevent them from being compared by this Comparator. And IllegalArgumentException if the classes share no relation.
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."- Specified by:
compare
in interfacejava.util.Comparator
- 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.
-
isComparable
public boolean isComparable(java.lang.Class c1, java.lang.Class c2)
Checks, whether the given classes are comparable. This method will return true, if one of the classes is assignable from the other class.- Parameters:
c1
- the first class to comparec2
- the second class to compare- Returns:
- true, if the classes share a direct relation, false otherwise.
-
-