activemq-cpp-3.6.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 ( )
inlinevirtual

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::Double, decaf::lang::Float, decaf::lang::Integer, decaf::lang::Long, decaf::lang::Boolean, decaf::lang::Short, decaf::lang::Byte, decaf::lang::Character, decaf::lang::Double, decaf::lang::Float, decaf::lang::Boolean, decaf::lang::Integer, decaf::lang::Long, decaf::lang::Byte, decaf::lang::Short, and decaf::lang::Character.

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::Double, decaf::lang::Float, decaf::lang::Integer, decaf::lang::Long, decaf::lang::Short, decaf::lang::Boolean, decaf::lang::Byte, decaf::lang::Character, decaf::lang::Double, decaf::lang::Float, decaf::lang::Integer, decaf::lang::Long, decaf::lang::Short, decaf::lang::Boolean, decaf::lang::Byte, and decaf::lang::Character.

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::Double, decaf::lang::Float, decaf::lang::Integer, decaf::lang::Long, decaf::lang::Short, decaf::lang::Boolean, decaf::lang::Byte, decaf::lang::Character, decaf::lang::Double, decaf::lang::Float, decaf::lang::Integer, decaf::lang::Long, decaf::lang::Boolean, decaf::lang::Short, decaf::lang::Byte, and decaf::lang::Character.


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