activemq-cpp-3.4.0

decaf::lang::Comparable< T > Class Template Reference

This interface imposes a total ordering on the objects of each class that implements it. More...

#include <src/main/decaf/lang/Comparable.h>

Public Member Functions

virtual ~Comparable ()
virtual int compareTo (const T &value) const =0
 Compares this object with the specified object for order.
virtual bool equals (const T &value) const =0
virtual bool operator== (const T &value) const =0
 Compares equality between this object and the one passed.
virtual bool operator< (const T &value) const =0
 Compares this object to another and returns true if this object is considered to be less than the one passed.

Detailed Description

template<typename T>
class decaf::lang::Comparable< T >

This interface imposes a total ordering on the objects of each class that implements it.

This ordering is referred to as the class's natural ordering, and the class's compareTo method is referred to as its natural comparison method.


Constructor & Destructor Documentation

template<typename T>
virtual decaf::lang::Comparable< T >::~Comparable ( ) [inline, virtual]

Member Function Documentation

template<typename T>
virtual int decaf::lang::Comparable< T >::compareTo ( const T &  value) const [pure virtual]

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."

Parameters:
value- 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.

Implemented in decaf::lang::Boolean, decaf::lang::Boolean, decaf::lang::Byte, decaf::lang::Byte, decaf::lang::Character, decaf::lang::Character, decaf::lang::Double, decaf::lang::Double, decaf::lang::Float, decaf::lang::Float, decaf::lang::Integer, decaf::lang::Integer, decaf::lang::Long, decaf::lang::Long, decaf::lang::Short, and decaf::lang::Short.

template<typename T>
virtual bool decaf::lang::Comparable< T >::operator< ( const T &  value) const [pure virtual]

Compares this object to another and returns true if this object is considered to be less than the one passed.

This

Parameters:
value- the value to be compared to this one.
Returns:
true if this object is equal to the one passed.

Implemented in decaf::lang::Boolean, decaf::lang::Boolean, decaf::lang::Byte, decaf::lang::Byte, decaf::lang::Character, decaf::lang::Character, decaf::lang::Double, decaf::lang::Double, decaf::lang::Float, decaf::lang::Float, decaf::lang::Integer, decaf::lang::Integer, decaf::lang::Long, decaf::lang::Long, decaf::lang::Short, and decaf::lang::Short.

template<typename T>
virtual bool decaf::lang::Comparable< T >::operator== ( const T &  value) const [pure virtual]

Compares equality between this object and the one passed.

Parameters:
value- the value to be compared to this one.
Returns:
true if this object is equal to the one passed.

Implemented in decaf::lang::Boolean, decaf::lang::Boolean, decaf::lang::Byte, decaf::lang::Byte, decaf::lang::Character, decaf::lang::Character, decaf::lang::Double, decaf::lang::Double, decaf::lang::Float, decaf::lang::Float, decaf::lang::Integer, decaf::lang::Integer, decaf::lang::Long, decaf::lang::Long, decaf::lang::Short, and decaf::lang::Short.


The documentation for this class was generated from the following file: