Skip navigation links

Oracle® Coherence Java API Reference
Release 3.7.0.0

E18683-01


com.tangosol.util.comparator
Class SafeComparator

java.lang.Object
  extended by com.tangosol.util.Base
      extended by 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
See Also:
Object.equals(java.lang.Object), Object.hashCode()

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

Skip navigation links

Oracle® Coherence Java API Reference
Release 3.7.0.0

E18683-01


Copyright © 2000, 2011, Oracle and/or its affiliates. All rights reserved.