Skip navigation links

Oracle® Coherence Java API Reference
Release 12.1.2.0.3

E26043-02


com.tangosol.util.comparator
Class ChainedComparator

java.lang.Object
  extended by com.tangosol.util.Base
      extended by com.tangosol.util.comparator.ChainedComparator

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

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

Composite comparator implementation based on a collection of comparators. The comparators in the array assumed to be sorted according to their priorities; only in a case when the n-th comparator cannot determine the order of the passed objects:

   aComparator[n].compare(o1, o2) == 0
 

the (n+1)-th comparator will be applied to calculate the value.

Author:
gg 2002.11.14

Field Summary
protected  java.util.Comparator[] m_aComparator
          The Comparator array.

 

Constructor Summary
ChainedComparator()
          Default constructor (for ExternalizableLite and PortableObject).
ChainedComparator(java.util.Comparator[] aComparator)
          Construct a ChainedComparator.
ChainedComparator(java.util.Comparator comparator1, java.util.Comparator comparator2)
          Construct a ChainedComparator with the specified comparators.
ChainedComparator(java.util.Comparator comparator1, java.util.Comparator comparator2, java.util.Comparator comparator3)
          Construct a ChainedComparator with the specified comparators.

 

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 based on the rules specified by Comparator.
 boolean equals(java.lang.Object o)
          Determine if two ChainedComparator objects are equal.
 java.util.Comparator[] getComparators()
          Obtain the underlying Comparator array.
 int hashCode()
          Return the hash code for this comparator.
 boolean isKeyComparator()
          Specifies whether this 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 ChainedComparator.
 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

m_aComparator

protected java.util.Comparator[] m_aComparator
The Comparator array.

Constructor Detail

ChainedComparator

public ChainedComparator()
Default constructor (for ExternalizableLite and PortableObject).

ChainedComparator

public ChainedComparator(java.util.Comparator comparator1,
                         java.util.Comparator comparator2)
Construct a ChainedComparator with the specified comparators.
Parameters:
comparator1 - the first comparator
comparator2 - the second comparator

ChainedComparator

public ChainedComparator(java.util.Comparator comparator1,
                         java.util.Comparator comparator2,
                         java.util.Comparator comparator3)
Construct a ChainedComparator with the specified comparators.
Parameters:
comparator1 - the first comparator
comparator2 - the second comparator
comparator3 - the third comparator

ChainedComparator

public ChainedComparator(java.util.Comparator[] aComparator)
Construct a ChainedComparator.
Parameters:
aComparator - the comparator array

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.
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 based on the rules specified by Comparator.

This implementation simply passes on this invocation to the wrapped Comparator objects if they too implement this interface, or invokes their default compare method passing the values extracted from the passed entries.

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 iff all the underlying comparators implement the EntryAwareComparator interface and all isKeyComparator() calls return true

toString

public java.lang.String toString()
Return a human-readable description for this ChainedComparator.
Returns:
a String description of the ChainedComparator

equals

public boolean equals(java.lang.Object o)
Determine if two ChainedComparator objects 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 ChainedComparator

hashCode

public int hashCode()
Return the hash code for this comparator.
Returns:
the hash code value for this comparator

getComparators

public java.util.Comparator[] getComparators()
Obtain the underlying Comparator array.
Returns:
the Comparator array

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 12.1.2.0.3

E26043-02


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