zinger.bsheet
Class NumberComparator

java.lang.Object
  extended by zinger.bsheet.NumberComparator
All Implemented Interfaces:
java.util.Comparator

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


Field Summary
static int BYTE_PRECISION
           
static int DOUBLE_PRECISION
           
static int FLOAT_PRECISION
           
static NumberComparator INSTANCE
           
static int INT_PRECISION
           
static int LONG_PRECISION
           
static int SHORT_PRECISION
           
 
Constructor Summary
protected NumberComparator()
           
 
Method Summary
 int compare(java.lang.Object o1, java.lang.Object o2)
          Compares 2 objects as numbers.
 int compareNumbers(java.lang.Number n1, java.lang.Number n2)
          Compares 2 numbers.
 int compareNumbers(java.lang.Number n1, java.lang.Number n2, int precision)
          Compares 2 numbers using specified number precision.
 java.lang.Number convertToPrecision(java.lang.Number n, int precision)
          Converts a number object to a specified precision.
 boolean equals(java.lang.Object obj)
           
 int getPrecision(java.lang.Number n)
          Determines a precision index of a number object.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INSTANCE

public static final NumberComparator INSTANCE

BYTE_PRECISION

public static final int BYTE_PRECISION
See Also:
Constant Field Values

SHORT_PRECISION

public static final int SHORT_PRECISION
See Also:
Constant Field Values

INT_PRECISION

public static final int INT_PRECISION
See Also:
Constant Field Values

LONG_PRECISION

public static final int LONG_PRECISION
See Also:
Constant Field Values

FLOAT_PRECISION

public static final int FLOAT_PRECISION
See Also:
Constant Field Values

DOUBLE_PRECISION

public static final int DOUBLE_PRECISION
See Also:
Constant Field Values
Constructor Detail

NumberComparator

protected NumberComparator()
Method Detail

compare

public int compare(java.lang.Object o1,
                   java.lang.Object o2)
            throws java.lang.ClassCastException,
                   java.lang.IllegalArgumentException
Compares 2 objects as numbers.

Specified by:
compare in interface java.util.Comparator
Throws:
java.lang.ClassCastException - if one of the objects is not an instance of Number
java.lang.IllegalArgumentException - if one of the objects is null
See Also:
compareNumbers(java.lang.Number, java.lang.Number)

compareNumbers

public int compareNumbers(java.lang.Number n1,
                          java.lang.Number n2)
                   throws java.lang.IllegalArgumentException
Compares 2 numbers.

Returns:
positive integer if n1 is less than n2, negative integer if n1 is greater than n2, 0 if n1 is equal to n2
Throws:
java.lang.IllegalArgumentException - if one of the objects is null
See Also:
compare(java.lang.Object, java.lang.Object), compareNumbers(java.lang.Number, java.lang.Number, int)

compareNumbers

public int compareNumbers(java.lang.Number n1,
                          java.lang.Number n2,
                          int precision)
                   throws java.lang.IllegalArgumentException
Compares 2 numbers using specified number precision.

Returns:
positive integer if n1 is less than n2, negative integer if n1 is greater than n2, 0 if n1 is equal to n2
Throws:
java.lang.IllegalArgumentException - if one of the objects is null
See Also:
compareNumbers(java.lang.Number, java.lang.Number)

getPrecision

public int getPrecision(java.lang.Number n)
Determines a precision index of a number object.


convertToPrecision

public java.lang.Number convertToPrecision(java.lang.Number n,
                                           int precision)
Converts a number object to a specified precision. If the object is already of the specified precision, the same object is returned, otherwise a new one is instantiated.


equals

public boolean equals(java.lang.Object obj)
Specified by:
equals in interface java.util.Comparator
Overrides:
equals in class java.lang.Object