Class EmptyGreatestComparer

  • All Implemented Interfaces:
    java.io.Serializable, java.util.Comparator

    public class EmptyGreatestComparer
    extends java.lang.Object
    implements java.util.Comparator, java.io.Serializable
    A Comparer that modifies a base comparer by sorting empty key values and NaN values last (greatest), as opposed to the default which sorts them first.
    Author:
    Michael H. Kay
    See Also:
    Serialized Form
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int compare​(java.lang.Object a, java.lang.Object b)
      Compare two AtomicValue objects according to the rules for their data type.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.util.Comparator

        equals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
    • Constructor Detail

      • EmptyGreatestComparer

        public EmptyGreatestComparer​(AtomicComparer baseComparer)
    • Method Detail

      • compare

        public int compare​(java.lang.Object a,
                           java.lang.Object 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:
        compare in interface java.util.Comparator
        Parameters:
        a - the first object to be compared. It is intended that this should normally be an instance of AtomicValue, though this restriction is not enforced. If it is a StringValue, the collator is used to compare the values, otherwise the value must implement the java.util.Comparable interface.
        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 a0 if a>b
        Throws:
        java.lang.ClassCastException - if the objects are not comparable