## net.sf.saxon.sort
Class DecimalSortComparer

    java.lang.Object
      net.sf.saxon.sort.DecimalSortComparer

All Implemented Interfaces:
  Serializable, AtomicComparer

    public class DecimalSortComparer

extends Object
implements AtomicComparer

An AtomicComparer used for sorting values that are known to be instances of xs:decimal (including xs:integer), It also supports a separate method for getting a collation key to test equality of items

Author:
  Michael H. Kay
See Also:
  Serialized Form

Method Summary
`int` `compareAtomicValues(AtomicValue a, AtomicValue b)` Compare two AtomicValue objects according to the rules for their data type.
`boolean` `comparesEqual(AtomicValue a, AtomicValue b)` Test whether two values compare equal.
`ComparisonKey` `getComparisonKey(AtomicValue a)` Get a comparison key for an object.
`static DecimalSortComparer` `getInstance()`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### getInstance

    public static DecimalSortComparer getInstance()

### compareAtomicValues

    public int compareAtomicValues(AtomicValue a,
                                   AtomicValue b)

  Compare two AtomicValue objects according to the rules for their data type. UntypedAtomic values are compared as if they were strings; if different semantics are wanted, the conversion must be done by the caller.

  Specified by:
    `compareAtomicValues` in interface `AtomicComparer`
  Parameters:
    `a` - the first object to be compared.
    `b` - the second object to be compared. This must be comparable with the first object: for example, if one is a string, they must both be strings.
  Returns:
    <0 if a<b, 0 if a=b, >0 if a>b
  Throws:
    `ClassCastException` - if the objects are not comparable

### comparesEqual

    public boolean comparesEqual(AtomicValue a,
                                 AtomicValue b)

  Test whether two values compare equal.

  Specified by:
    `comparesEqual` in interface `AtomicComparer`
  Parameters:
    `a` - the first object to be compared.
    `b` - the second object to be compared.
  Returns:
    true if the values are equal, false if not

### getComparisonKey

    public ComparisonKey getComparisonKey(AtomicValue a)

  Get a comparison key for an object. This must satisfy the rule that if two objects are equal as defined by the XPath eq operator, then their comparison keys are equal as defined by the Java equals() method, and vice versa. There is no requirement that the comparison keys should reflect the ordering of the underlying objects.

  Specified by:
    `getComparisonKey` in interface `AtomicComparer`

Copyright (C) Michael H. Kay. All rights reserved.