Overview | Package | Class | Tree | Index | Help

Oracle® Coherence Java API Reference
v3.5.3
E15583-01
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.tangosol.util.comparator
Class SafeComparator

    java.lang.Object
      com.tangosol.util.Base
          com.tangosol.util.comparator.SafeComparator

All Implemented Interfaces:
  ExternalizableLite, PortableObject, EntryAwareComparator, QueryMapComparator, java.io.Serializable, java.util.Comparator

Direct Known Subclasses:
  EntryComparator, InverseComparator

    public class SafeComparator

extends Base
implements java.util.Comparator, QueryMapComparator, EntryAwareComparator, java.io.Serializable, ExternalizableLite, PortableObject

Null-safe delegating comparator. Null values are evaluated as "less then" any non-null value. If the wrapped comparator is not specified then all non-null values must implement the `Comparable` interface.

Use SafeComparator.INSTANCE to obtain an instance of non-delegating SafeComparator.

Author:
  gg 2002.12.10

Field Summary
`static SafeComparator` | `INSTANCE` The trivial SafeComparator.
`protected java.util.Comparator` | `m_comparator` The wrapped Comparator.

Constructor Summary
`SafeComparator()` Default constructor (for ExternalizableLite and PortableObject).
`SafeComparator(java.util.Comparator comparator)` Construct a SafeComparator delegating to the specified (wrapped) comparator.

Method Summary
`int` | `compare(java.lang.Object o1, java.lang.Object o2)` Compares its two arguments for order.
`int` | `compareEntries(QueryMap.Entry entry1, QueryMap.Entry entry2)` Compare two entries using the underlying comparator.
`static int` | `compareSafe(java.util.Comparator comparator, java.lang.Object o1, java.lang.Object o2)` Compares its two arguments for order.
`boolean` | `equals(java.lang.Object o)` Determine if two comparators are equal.
`java.util.Comparator` | `getComparator()` Obtain the wrapped Comparator.
`int` | `hashCode()` Return the hash code for this comparator.
`boolean` | `isKeyComparator()` Specifies whether this comparator expects to compare keys or values.
`static boolean` | `isKeyComparator(java.util.Comparator comparator)` Check whether the specified comparator expects to compare keys or values.
`void` | `readExternal(java.io.DataInput in)` Restore the contents of this object by loading the object's state from the passed DataInput object.
`void` | `readExternal(PofReader in)` Restore the contents of a user type instance by reading its state using the specified PofReader object.
`java.lang.String` | `toString()` Return a human-readable description for this Comparator.
`void` | `writeExternal(java.io.DataOutput out)` Save the contents of this object by storing the object's state into the passed DataOutput object.
`void` | `writeExternal(PofWriter out)` Save the contents of a POF user type instance by writing its state using the specified PofWriter object.

Field Detail

### INSTANCE

    public static final SafeComparator INSTANCE

  The trivial SafeComparator.

### m_comparator

    protected java.util.Comparator m_comparator

  The wrapped Comparator. Could be null.

Constructor Detail

### SafeComparator

    public SafeComparator()

  Default constructor (for ExternalizableLite and PortableObject).

### SafeComparator

    public SafeComparator(java.util.Comparator comparator)

  Construct a SafeComparator delegating to the specified (wrapped) comparator.

  Parameters:
    `comparator` - Comparator object to delegate comparison of non-null values (optional)

Method Detail

### compare

    public int compare(java.lang.Object o1,
                       java.lang.Object o2)

  Compares its two arguments for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second. Null values are evaluated as "less then" any non-null value. If the wrapped comparator is not specified, all non-null values must implement the `Comparable` interface.

  Specified by:
    `compare` in interface `java.util.Comparator`
  Parameters:
    `o1` - the first object to be compared
    `o2` - the second object to be compared
  Returns:
    a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second
  Throws:
    `java.lang.ClassCastException` - if the arguments' types prevent them from being compared by this Comparator.

### compareEntries

    public int compareEntries(QueryMap.Entry entry1,
                              QueryMap.Entry entry2)

  Compare two entries using the underlying comparator. If the wrapped comparator does not implement the QueryMapComparator interface, revert to the entry values comparison.

  Specified by:
    `compareEntries` in interface `QueryMapComparator`
  Parameters:
    `entry1` - the first entry to compare values from; read-only
    `entry2` - the second entry to compare values from; read-only
  Returns:
    a negative integer, zero, or a positive integer as the first entry denotes a value that is is less than, equal to, or greater than the value denoted by the second entry

### isKeyComparator

    public boolean isKeyComparator()

  Specifies whether this comparator expects to compare keys or values.

  Specified by:
    `isKeyComparator` in interface `EntryAwareComparator`
  Returns:
    true if Entry keys are expected; false otherwise

### isKeyComparator

    public static boolean isKeyComparator(java.util.Comparator comparator)

  Check whether the specified comparator expects to compare keys or values.

  Parameters:
    `comparator` - a Comparator to check
  Returns:
    true if the comparator expects keys; false otherwise

### getComparator

    public java.util.Comparator getComparator()

  Obtain the wrapped Comparator.

  Returns:
    the wrapped Comparator

### compareSafe

    public static int compareSafe(java.util.Comparator comparator,
                                  java.lang.Object o1,
                                  java.lang.Object o2)

  Compares its two arguments for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second. Null values are evaluated as "less then" any non-null value. Non-null values must implement the `Comparable` interface.

  Parameters:
    `comparator` - a comparator to use for the comparison (optional)
    `o1` - the first object to be compared
    `o2` - the second object to be compared
  Returns:
    a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second
  Throws:
    `java.lang.ClassCastException` - if the arguments are not Comparable

### toString

    public java.lang.String toString()

  Return a human-readable description for this Comparator.

  Returns:
    a String description of the Comparator

### equals

    public boolean equals(java.lang.Object o)

  Determine if two comparators are equal.

  Specified by:
    `equals` in interface `java.util.Comparator`
  Parameters:
    `o` - the other comparator
  Returns:
    true if the passed object is equal to this

### hashCode

    public int hashCode()

  Return the hash code for this comparator.

  Returns:
    the hash code value for this comparator

### readExternal

    public void readExternal(java.io.DataInput in)
                      throws java.io.IOException

  Restore the contents of this object by loading the object's state from the passed DataInput object.

  Specified by:
    `readExternal` in interface `ExternalizableLite`
  Parameters:
    `in` - the DataInput stream to read data from in order to restore the state of this object
  Throws:
    `java.io.IOException` - if an I/O exception occurs
    `java.io.NotActiveException` - if the object is not in its initial state, and therefore cannot be deserialized into

### writeExternal

    public void writeExternal(java.io.DataOutput out)
                       throws java.io.IOException

  Save the contents of this object by storing the object's state into the passed DataOutput object.

  Specified by:
    `writeExternal` in interface `ExternalizableLite`
  Parameters:
    `out` - the DataOutput stream to write the state of this object to
  Throws:
    `java.io.IOException` - if an I/O exception occurs

### readExternal

    public void readExternal(PofReader in)
                      throws java.io.IOException

  Restore the contents of a user type instance by reading its state using the specified PofReader object.

  Specified by:
    `readExternal` in interface `PortableObject`
  Parameters:
    `in` - the PofReader from which to read the object's state
  Throws:
    `java.io.IOException` - if an I/O error occurs

### writeExternal

    public void writeExternal(PofWriter out)
                       throws java.io.IOException

  Save the contents of a POF user type instance by writing its state using the specified PofWriter object.

  Specified by:
    `writeExternal` in interface `PortableObject`
  Parameters:
    `out` - the PofWriter to which to write the object's state
  Throws:
    `java.io.IOException` - if an I/O error occurs

Overview | Package | Class | Tree | Index | Help

Oracle® Coherence Java API Reference
v3.5.3
E15583-01
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000, 2010, Oracle. All rights reserved.