Class AbstractComparableAggregator<T,R>
java.lang.Object
com.tangosol.util.Base
com.tangosol.util.BitHelper
com.tangosol.util.ExternalizableHelper
com.tangosol.util.aggregator.AbstractAggregator<Object,Object,T,R,R>
com.tangosol.util.aggregator.AbstractComparableAggregator<T,R>
- Type Parameters:
T- the type of the value to extract fromR- the type of the aggregation result
- All Implemented Interfaces:
ExternalizableLite, PortableObject, InvocableMap.EntryAggregator<Object,Object, R>, InvocableMap.StreamingAggregator<Object, Object, Object, R>, Serializable, Cloneable
- Direct Known Subclasses:
ComparableMax, ComparableMin
public abstract class AbstractComparableAggregator<T,R>
extends AbstractAggregator<Object,Object,T,R,R>
Abstract aggregator that processes values extracted from a set of entries
in a Map, with knowledge of how to compare those values. There are two way
to use the AbstractComparableAggregator:
- All the extracted objects must implement
Comparable, or - The AbstractComparableAggregator has to be provided with a
Comparatorobject.
AbstractAggregator.accumulate(Streamer) is empty, a
null result is returned.- Since:
- Coherence 3.2
- Author:
- gg 2006.02.13
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class ExternalizableHelper
ExternalizableHelper.DecoratedMultiBufferReadBuffer, ExternalizableHelper.DecorationAware, ExternalizableHelper.DefaultObjectStreamFactory, ExternalizableHelper.FormatAwareCompressor, ExternalizableHelper.IntDecoratedObject, ExternalizableHelper.Shielded, ExternalizableHelper.ShieldedDataOutputStream, ExternalizableHelper.ShieldedInputStream, ExternalizableHelper.ShieldedObjectOutputStream, ExternalizableHelper.ShieldedOutputStream, ExternalizableHelper.SimpleXmlBeanClassCache, ExternalizableHelper.Stats, ExternalizableHelper.XmlBeanClassCacheNested classes/interfaces inherited from class Base
Base.LoggingWriterNested classes/interfaces inherited from interface InvocableMap.StreamingAggregator
InvocableMap.StreamingAggregator.RetractionResult -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Comparator<? super R> The comparator to use for comparing extracted values.protected intThe count of processed entries.protected intThe number of current entries equal to the retained extremum.protected RThe running result value.Fields inherited from class AbstractAggregator
m_fParallelFields inherited from class ExternalizableHelper
BINARY_SIZE, CHUNK_SIZE, CHUNK_THRESHOLD, CONVERTER_FROM_BINARY, CONVERTER_STRIP_INTDECO, CONVERTER_TO_BINARY, DECO_APP_1, DECO_APP_2, DECO_APP_3, DECO_BACKUP, DECO_CUSTOM, DECO_EXPIRY, DECO_ID_MAX, DECO_ID_MIN, DECO_JCACHE, DECO_JCACHE_SYNTHETIC, DECO_MEMCACHED, DECO_PUSHREP, DECO_RSVD_1, DECO_STORE, DECO_TOPLINK, DECO_TX, DECO_VALUE, DECO_VECTOR, DECO_WLS, EMPTY_BINARY_ARRAY, FMT_B_ARRAY, FMT_BIN_DECO, FMT_BIN_EXT_DECO, FMT_BINARY, FMT_BOOLEAN, FMT_BYTE, FMT_DECIMAL, FMT_DOUBLE, FMT_EXT, FMT_FLOAT, FMT_IDO, FMT_INT, FMT_INTEGER, FMT_LONG, FMT_NONE, FMT_NULL, FMT_OBJ_EXT, FMT_OBJ_SER, FMT_OPT, FMT_OPT_DOUBLE, FMT_OPT_INT, FMT_OPT_LONG, FMT_SHORT, FMT_STRING, FMT_UNKNOWN, FMT_XML_BEAN, FMT_XML_SER, FORCE_RESOLVING_STREAMS, LAMBDA_SERIALIZATION, MAX_DECO_HEADER_BYTES, MAX_MEMCACHED_PASS_THROUGH_FORMAT_DEPTH, PACKED_INT_SIZE, PACKED_LONG_SIZE, PROPERTY_CONFIG, s_streamfactory, s_tloInEHDeserialize, TRINT_DOMAIN_SPAN, TRINT_MAX_VALUE, TRINT_MAX_VARIANCE, USE_POF_STREAMS, USE_XMLBEAN_CLASS_CACHE, XMLBEAN_CLASS_CACHEFields inherited from class Base
DEFAULT_LOAD_FACTOR, LOG_ALWAYS, LOG_CONFIG, LOG_DEBUG, LOG_ERR, LOG_INFO, LOG_MAX, LOG_MIN, LOG_QUIET, LOG_WARN, POWER_0, POWER_G, POWER_K, POWER_M, POWER_T, UNIT_D, UNIT_H, UNIT_M, UNIT_MS, UNIT_NS, UNIT_S, UNIT_USFields inherited from interface InvocableMap.StreamingAggregator
ALLOW_INCONSISTENCIES, BY_MEMBER, BY_PARTITION, CONTINUOUS, PARALLEL, PRESENT_ONLY, RETAINS_ENTRIES, SERIAL, STATE_CHECKPOINTABLE -
Constructor Summary
ConstructorsModifierConstructorDescriptionDefault constructor (necessary for the ExternalizableLite interface).<E extends Comparable<? super E>>AbstractComparableAggregator(ValueExtractor<? super T, ? extends E> extractor) Construct an AbstractComparableAggregator object.AbstractComparableAggregator(ValueExtractor<? super T, ? extends R> extractor, Comparator<? super R> comparator) Construct an AbstractComparableAggregator object.AbstractComparableAggregator(String sMethod) Construct an AbstractComparableAggregator object. -
Method Summary
Modifier and TypeMethodDescriptionbooleanCompares this object with another object for equality.protected RfinalizeResult(boolean fFinal) Obtain the result of the aggregation.Comparator<? super R> Obtain the comparator used to compare extracted values.inthashCode()Returns a hash code value for this object.protected voidinit(boolean fFinal) Initialize the aggregation result.voidRestore the contents of a user type instance by reading its state using the specified PofReader object.voidRestore the contents of this object by loading the object's state from the passed DataInput object.voidrestoreState(Object state) Restore a maintenance-state snapshot into this empty supplied instance.Return a detached, serializer-compatible snapshot of the state required to continue incremental maintenance.voidwriteExternal(PofWriter out) Save the contents of a POF user type instance by writing its state using the specified PofWriter object.voidwriteExternal(DataOutput out) Save the contents of this object by storing the object's state into the passed DataOutput object.Methods inherited from class AbstractAggregator
accumulate, accumulate, combine, ensureInitialized, finalizeResult, getPartialResult, getValueExtractor, isReplacementRequired, process, processEntry, remove, replace, retract, supply, toString, updateMethods inherited from class ExternalizableHelper
asBinary, calculatePackedLength, calculatePackedLength, checkObjectInputFilter, checkObjectInputFilter, checkObjectInputFilter, convertUTF, decodeExpiry, decorate, decorate, decorate, decorate, decorate, decorateBinary, encodeExpiry, ensureSerializer, extractIntDecoration, fromBinary, fromBinary, fromBinary, fromBinary, fromBinary, fromBinary, fromByteArray, fromByteArray, getClass, getConfigSerialFilter, getConfigSerialFilterFactory, getDecoration, getDecoration, getDecorations, getDeltaCompressor, getInputStream, getNewObjectInput, getObjectInput, getObjectInputFilter, getObjectOutput, getObjectStreamFactory, getOutputStream, getShieldedOutputStream, getStreamFormat, getUndecorated, getUndecorated, isDecorated, isDecorated, isIntDecorated, isIntDecorated, isPatchCompatible, isPatchCompatible, isResolving, isSerializable, isSerializerCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, loadClass, loadResource, main, makeTrint, newFilteredObjectInputStream, newFilteredObjectInputStream, readBigDecimal, readBigInteger, readBooleanArray, readBooleanArray, readByteArray, readCharArray, readCharArray, readCollection, readDate, readDoubleArray, readDoubleArray, readExternalizableLite, readExternalizableLite, readFloatArray, readFloatArray, readInt, readInt, readIntArray, readIntArray, readIntArray2d, readLargeBooleanArray, readLargeByteArray, readLargeCharArray, readLargeDoubleArray, readLargeFloatArray, readLargeIntArray, readLargeLongArray, readLargeObjectArray, readLargeStringArray, readLong, readLong, readLongArray, readLongArray, readMap, readMap, readObject, readObject, readObjectArray, readObjectArray, readSafeUTF, readSafeUTF, readSerializable, readSerializable, readStringArray, readStringArray, readTime, readTimestamp, readTrint, readUnsignedTrint, readUTF, readXmlBean, readXmlSerializable, readXmlSerializable, realize, removeIntDecoration, removeIntDecoration, replace, reportIncompatibleSerializers, reportIncompatibleSerializers, reportIncompatibleSerializers, reportIncompatibleSerializers, setObjectStreamFactory, toBinary, toBinary, toBinary, toByteArray, toByteArray, toByteArray, toLiteBinary, toLong, undecorate, undecorate, validateBufferSize, validateLoadArray, validateLoadClass, validateMemcachedPassThroughValue, validateMemcachedPassThroughValue, validateMemcachedPassThroughValue, validateMemcachedPassThroughValue, writeBigDecimal, writeBigInteger, writeBooleanArray, writeByteArray, writeCollection, writeDate, writeDoubleArray, writeExternalizableLite, writeFloatArray, writeInt, writeInt, writeIntArray, writeIntArray2d, writeLong, writeLong, writeLongArray, writeMap, writeObject, writeSafeUTF, writeSafeUTF, writeSerializable, writeStringArray, writeTime, writeTimestamp, writeTrint, writeTrint, writeUTF, writeXmlBean, writeXmlSerializableMethods inherited from class BitHelper
countBits, countBits, countBits, indexOfLSB, indexOfLSB, indexOfLSB, indexOfMSB, indexOfMSB, indexOfMSB, rotateLeft, rotateLeft, rotateLeft, rotateRight, rotateRight, rotateRight, toBitString, toBitString, toBitString, toBytes, toBytes, toBytes, toBytes, toInt, toInt, toLongMethods inherited from class 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, newHashMap, newHashMap, newHashSet, newHashSet, 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, waitMethods inherited from interface InvocableMap.StreamingAggregator
aggregate, characteristics, finalizeResult, getMaintenanceStatus, isAllowInconsistencies, isByMember, isByPartition, isContinuous, isParallel, isPresentOnly, isRetainsEntries, isSerial, isStateCheckpointable
-
Field Details
-
m_count
protected transient int m_countThe count of processed entries. -
m_cSupport
protected transient int m_cSupportThe number of current entries equal to the retained extremum. -
m_oResult
The running result value. -
m_comparator
The comparator to use for comparing extracted values.
-
-
Constructor Details
-
AbstractComparableAggregator
public AbstractComparableAggregator()Default constructor (necessary for the ExternalizableLite interface). -
AbstractComparableAggregator
public <E extends Comparable<? super E>> AbstractComparableAggregator(ValueExtractor<? super T, ? extends E> extractor) Construct an AbstractComparableAggregator object.- Parameters:
extractor- the extractor that provides a value in the form of any object that implements theComparableinterface
-
AbstractComparableAggregator
public AbstractComparableAggregator(ValueExtractor<? super T, ? extends R> extractor, Comparator<? super R> comparator) Construct an AbstractComparableAggregator object.- Parameters:
extractor- the extractor that provides an object to be comparedcomparator- the comparator used to compare the extracted object
-
AbstractComparableAggregator
Construct an AbstractComparableAggregator object.- Parameters:
sMethod- the name of the method that returns a value in the form of any object that implements theComparableinterface
-
-
Method Details
-
init
protected void init(boolean fFinal) Initialize the aggregation result.- Specified by:
initin classAbstractAggregator<Object,Object, T, R, R> - Parameters:
fFinal- true is passed if the aggregation process that is being initialized must produce a final aggregation result; this will only be false if a parallel approach is being used and the initial (partial) aggregation process is being initialized
-
finalizeResult
Obtain the result of the aggregation.If the fFinal parameter is true, the returned object must be the final result of the aggregation; otherwise, the returned object will be treated as a partial result that should be incorporated into the final result.
- Specified by:
finalizeResultin classAbstractAggregator<Object,Object, T, R, R> - Parameters:
fFinal- true to indicate that the final result of the aggregation process should be returned; this will only be false if a parallel approach is being used- Returns:
- the result of the aggregation process
-
snapshotState
Description copied from interface:InvocableMap.StreamingAggregatorReturn a detached, serializer-compatible snapshot of the state required to continue incremental maintenance.This method is used only when
InvocableMap.StreamingAggregator.STATE_CHECKPOINTABLEis advertised. The default implementation does not support state checkpointing.- Returns:
- a detached maintenance-state snapshot
-
restoreState
Description copied from interface:InvocableMap.StreamingAggregatorRestore a maintenance-state snapshot into this empty supplied instance.This method is used only when
InvocableMap.StreamingAggregator.STATE_CHECKPOINTABLEis advertised. The default implementation does not support state checkpointing.- Parameters:
state- the snapshot returned byInvocableMap.StreamingAggregator.snapshotState()
-
getComparator
Obtain the comparator used to compare extracted values.- Returns:
- the comparator, or
null
-
equals
Description copied from class:AbstractAggregatorCompares this object with another object for equality. -
hashCode
public int hashCode()Description copied from class:AbstractAggregatorReturns a hash code value for this object. -
readExternal
Restore the contents of this object by loading the object's state from the passed DataInput object.- Specified by:
readExternalin interfaceExternalizableLite- Overrides:
readExternalin classAbstractAggregator<Object,Object, T, R, R> - 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:
writeExternalin interfaceExternalizableLite- Overrides:
writeExternalin classAbstractAggregator<Object,Object, T, R, R> - 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:
readExternalin interfacePortableObject- Overrides:
readExternalin classAbstractAggregator<Object,Object, T, R, R> - 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:
writeExternalin interfacePortableObject- Overrides:
writeExternalin classAbstractAggregator<Object,Object, T, R, R> - Parameters:
out- the PofWriter to which to write the object's state- Throws:
IOException- if an I/O error occurs
-