Package com.tangosol.util.comparator
Class ChainedComparator<T>
java.lang.Object
com.tangosol.util.Base
com.tangosol.util.comparator.ChainedComparator<T>
- All Implemented Interfaces:
ExternalizableLite
,PortableObject
,EntryAwareComparator<T>
,QueryMapComparator<T>
,Serializable
,Comparator<T>
public class ChainedComparator<T>
extends Base
implements Comparator<T>, QueryMapComparator<T>, EntryAwareComparator<T>, 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) == 0the (n+1)-th comparator will be applied to calculate the value.
- Author:
- gg 2002.11.14
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.tangosol.util.Base
Base.LoggingWriter
-
Field Summary
-
Constructor Summary
ConstructorDescriptionDefault constructor (for ExternalizableLite and PortableObject).ChainedComparator
(Comparator<T>... aComparator) Construct a ChainedComparator. -
Method Summary
Modifier and TypeMethodDescriptionint
Compares its two arguments for order.int
compareEntries
(QueryMap.Entry<?, T> entry1, QueryMap.Entry<?, T> entry2) Compare two entries based on the rules specified byComparator
.boolean
Determine if two ChainedComparator objects are equal.Comparator<T>[]
Obtain the underlying Comparator array.int
hashCode()
Return the hash code for this comparator.boolean
Specifies whether this comparator expects to compare keys or values.void
Restore the contents of a user type instance by reading its state using the specified PofReader object.void
Restore the contents of this object by loading the object's state from the passed DataInput object.toString()
Return a human-readable description for this ChainedComparator.void
writeExternal
(PofWriter out) Save the contents of a POF user type instance by writing its state using the specified PofWriter object.void
writeExternal
(DataOutput out) Save the contents of this object by storing the object's state into the passed DataOutput object.Methods inherited from class com.tangosol.util.Base
azzert, azzert, azzert, azzertFailed, breakLines, breakLines, capitalize, checkNotEmpty, checkNotNull, checkRange, computeSafeWaitTime, decimalValue, dup, dup, ensureBigDecimal, ensureClassLoader, ensureRuntimeException, ensureRuntimeException, equals, equalsDeep, err, err, err, err, err, escape, formatDateTime, getCallerStackFrame, getCommonMonitor, getCommonMonitor, getCommonMonitor, getContextClassLoader, getContextClassLoader, getDeepMessage, getErr, getLastSafeTimeMillis, getLog, getMaxDecDigits, getMaxHexDigits, getOriginalException, getOut, getProcessRandom, getRandom, getRandomBinary, getRandomBinary, getRandomString, getSafeTimeMillis, getStackFrame, getStackFrames, getStackTrace, getStackTrace, getStackTrace, getThreadFactory, getTimeZone, getUpTimeMillis, hashCode, hexValue, indentString, indentString, isDecimal, isHex, isLogEcho, isOctal, log, log, log, log, log, makeInteger, makeLong, makeThread, mergeArray, mergeBooleanArray, mergeByteArray, mergeCharArray, mergeDoubleArray, mergeFloatArray, mergeIntArray, mergeLongArray, mod, mod, octalValue, out, out, out, out, out, pad, parseBandwidth, parseBandwidth, parseDelimitedString, parseHex, parseHex, parseMemorySize, parseMemorySize, parsePercentage, parseTime, parseTime, parseTimeNanos, parseTimeNanos, printStackTrace, randomize, randomize, randomize, randomize, read, read, read, read, read, read, read, replace, setErr, setLog, setLogEcho, setOut, sleep, toBandwidthString, toBandwidthString, toCharEscape, toCrc, toCrc, toCrc, toCrc, toCrc, toDecString, toDelimitedString, toDelimitedString, toDelimitedString, toDelimitedString, toHex, toHex, toHexDump, toHexEscape, toHexEscape, toHexEscape, toHexEscape, toHexString, toMemorySizeString, toMemorySizeString, toQuotedCharEscape, toQuotedStringEscape, toSqlString, toString, toString, toStringEscape, toUnicodeEscape, trace, trace, trace, trace, trace, trace, trace, trace, trace, truncateString, truncateString, wait
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Comparator
reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
Field Details
-
m_aComparator
The Comparator array.
-
-
Constructor Details
-
ChainedComparator
public ChainedComparator()Default constructor (for ExternalizableLite and PortableObject). -
ChainedComparator
Construct a ChainedComparator.- Parameters:
aComparator
- the comparator array
-
-
Method Details
-
compare
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 interfaceComparator<T>
- Parameters:
o1
- the first object to be comparedo2
- 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:
ClassCastException
- if the arguments' types prevent them from being compared by this Comparator.
-
compareEntries
Compare two entries based on the rules specified byComparator
.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 interfaceQueryMapComparator<T>
- Parameters:
entry1
- the first entry to compare values from; read-onlyentry2
- 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 interfaceEntryAwareComparator<T>
- Returns:
- true iff all the underlying comparators implement the EntryAwareComparator interface and all isKeyComparator() calls return true
-
toString
Return a human-readable description for this ChainedComparator. -
equals
Determine if two ChainedComparator objects are equal.- Specified by:
equals
in interfaceComparator<T>
- Overrides:
equals
in classObject
- 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. -
getComparators
Obtain the underlying Comparator array.- Returns:
- the Comparator array
-
readExternal
Restore the contents of this object by loading the object's state from the passed DataInput object.- Specified by:
readExternal
in interfaceExternalizableLite
- Parameters:
in
- the DataInput stream to read data from in order to restore the state of this object- Throws:
IOException
- if an I/O exception occurs
-
writeExternal
Save the contents of this object by storing the object's state into the passed DataOutput object.- Specified by:
writeExternal
in interfaceExternalizableLite
- Parameters:
out
- the DataOutput stream to write the state of this object to- Throws:
IOException
- if an I/O exception occurs
-
readExternal
Restore the contents of a user type instance by reading its state using the specified PofReader object.- Specified by:
readExternal
in interfacePortableObject
- Parameters:
in
- the PofReader from which to read the object's state- Throws:
IOException
- if an I/O error occurs
-
writeExternal
Save the contents of a POF user type instance by writing its state using the specified PofWriter object.- Specified by:
writeExternal
in interfacePortableObject
- Parameters:
out
- the PofWriter to which to write the object's state- Throws:
IOException
- if an I/O error occurs
-