org.figure8.join.core
Class SortableEntityObject

java.lang.Object
  extended by org.figure8.join.core.EntityObject
      extended by org.figure8.join.core.SortableEntityObject
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Comparable
Direct Known Subclasses:
DeliverableType, Release, Role, Step

public abstract class SortableEntityObject
extends EntityObject
implements java.lang.Comparable

Extension of EntityObject that implements the Comparable interface from JDK. Thus, entities subclassing this class can be sorted according to a natural order when retrieved from database or applicative caches.
This class has a generic implementation of compareTo(Object o) method and delegates comparison criterion retrieval to the abstract getStringForComparison() method. Subclasses should only implement this latest, returning the string representation of attribute used for comparison.

Version:
$Revision: 1.2 $
Author:
Laurent Broudoux
See Also:
Serialized Form

Constructor Summary
SortableEntityObject()
           
 
Method Summary
 int compareTo(java.lang.Object o)
          Compares this object with the specified object for order.
abstract  java.lang.String getStringForComparison()
          Get the comparision criterion as a string.
 
Methods inherited from class org.figure8.join.core.EntityObject
clone, equals, getId, hashCode, isTransient
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SortableEntityObject

public SortableEntityObject()
Method Detail

getStringForComparison

public abstract java.lang.String getStringForComparison()
Get the comparision criterion as a string. Subclasses should only implement this method.

Returns:
The string representation of comparison and sort criterion

compareTo

public int compareTo(java.lang.Object o)
Compares this object with the specified object for order. Returns a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

In the foregoing description, the notation sgn(expression) designates the mathematical signum function, which is defined to return one of -1, 0, or 1 according to whether the value of expression is negative, zero or positive.

The implementor must ensure sgn(x.compareTo(y)) == -sgn(y.compareTo(x)) for all x and y. (This implies that x.compareTo(y) must throw an exception iff y.compareTo(x) throws an exception.)

The implementor must also ensure that the relation is transitive: (x.compareTo(y)>0 && y.compareTo(z)>0) implies x.compareTo(z)>0.

Finally, the implementer must ensure that x.compareTo(y)==0 implies that sgn(x.compareTo(z)) == sgn(y.compareTo(z)), for all z.

It is strongly recommended, but not strictly required that (x.compareTo(y)==0) == (x.equals(y)). Generally speaking, any class that implements the Comparable interface and violates this condition should clearly indicate this fact. The recommended language is "Note: this class has a natural ordering that is inconsistent with equals."

Specified by:
compareTo in interface java.lang.Comparable
Parameters:
o - the Object to be compared.
Returns:
a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.
Throws:
java.lang.ClassCastException - if the specified object's type prevents it from being compared to this Object.


Copyright © 2005-2008 Join. All Rights Reserved.