Class CompositeAggregator<K,V>
- All Implemented Interfaces:
ExternalizableLite, PortableObject, InvocableMap.EntryAggregator<K,V, List>, InvocableMap.StreamingAggregator<K, V, Object, List>, Serializable
- Direct Known Subclasses:
CompositeAggregator.Parallel
- Since:
- Coherence 3.2
- Author:
- gg 2006.02.08
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classDeprecated.As of Coherence 12.2.1.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 InvocableMap.EntryAggregator[]The underlying EntryAggregator array.protected List[]An array of partial results for each aggregator.protected booleanFlag specifying whether all delegates support continuous maintenance.protected booleanFlag specifying whether this aggregator has been initialized.protected booleanFlag specifying whether parallel optimizations can be used.protected booleanFlag specifying whether all delegates support state checkpoints.protected booleanFlag specifying whether streaming optimizations can be used.protected SetA set of accumulated entries to aggregate.Fields 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
ConstructorsConstructorDescriptionDefault constructor (necessary for the ExternalizableLite interface).CompositeAggregator(InvocableMap.EntryAggregator[] aAggregator) Construct a CompositeAggregator based on a specified EntryAggregator array. -
Method Summary
Modifier and TypeMethodDescriptionbooleanaccumulate(InvocableMap.Entry entry) Accumulate one entry into the result.Process a set of InvocableMap Entry objects using each of the underlying agregators in order to produce an array of aggregated results.intA bit mask representing the set of characteristics of this aggregator.booleanMerge another partial result into the result.static CompositeAggregatorcreateInstance(InvocableMap.EntryAggregator[] aAggregator) Create an instance of CompositeAggregator based on a specifiedEntryAggregatorarray.protected voidEnsure that this aggregator is initialized.booleanCompare the CompositeAggregator with another object to determine equality.Return the final result of the aggregation.Obtain the EntryAggregator array.Return the current maintenance status of this aggregator.Return the partial result of the aggregation.inthashCode()Determine a hash value for the MultiExtractor object according to the generalObject.hashCode()contract.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 oState) Restore a maintenance-state snapshot into this empty supplied instance.retract(InvocableMap.Entry entry) Retract the contribution of a single entry from the aggregation result.Return a detached, serializer-compatible snapshot of the state required to continue incremental maintenance.supply()Create a new instance of this aggregator.toString()Return a human-readable description for this ValueExtractor.update(InvocableMap.Entry entry) Replace the contribution of an entry that was present before and remains present after a map update.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 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
accumulate, finalizeResult, isAllowInconsistencies, isByMember, isByPartition, isContinuous, isParallel, isPresentOnly, isRetainsEntries, isSerial, isStateCheckpointable
-
Field Details
-
m_aAggregator
The underlying EntryAggregator array. -
m_fInit
protected transient boolean m_fInitFlag specifying whether this aggregator has been initialized. -
m_fStreaming
protected transient boolean m_fStreamingFlag specifying whether streaming optimizations can be used. -
m_fContinuous
protected transient boolean m_fContinuousFlag specifying whether all delegates support continuous maintenance. -
m_fStateCheckpointable
protected transient boolean m_fStateCheckpointableFlag specifying whether all delegates support state checkpoints. -
m_fParallel
protected transient boolean m_fParallelFlag specifying whether parallel optimizations can be used. -
m_setEntries
A set of accumulated entries to aggregate. -
m_aParallelResults
An array of partial results for each aggregator.
-
-
Constructor Details
-
CompositeAggregator
public CompositeAggregator()Default constructor (necessary for the ExternalizableLite interface). -
CompositeAggregator
Construct a CompositeAggregator based on a specified EntryAggregator array.- Parameters:
aAggregator- an array of EntryAggregator objects; may not be null
-
-
Method Details
-
aggregate
Process a set of InvocableMap Entry objects using each of the underlying agregators in order to produce an array of aggregated results.- Specified by:
aggregatein interfaceInvocableMap.EntryAggregator<K,V, List> - Specified by:
aggregatein interfaceInvocableMap.StreamingAggregator<K,V, Object, List> - Parameters:
setEntries- a Set of read-only InvocableMap Entry objects to aggregate- Returns:
- a List of aggregated results from processing the entries by the corresponding underlying aggregators
-
supply
Description copied from interface:InvocableMap.StreamingAggregatorCreate a new instance of this aggregator. -
accumulate
Description copied from interface:InvocableMap.StreamingAggregatorAccumulate one entry into the result.- Specified by:
accumulatein interfaceInvocableMap.StreamingAggregator<K,V, Object, List> - Parameters:
entry- the entry to accumulate into the aggregation result- Returns:
trueto continue the aggregation, andfalseto signal to the caller that the result is ready and the aggregation can be short-circuited
-
retract
Description copied from interface:InvocableMap.StreamingAggregatorRetract the contribution of a single entry from the aggregation result.When the supplied entry is a
MapTrigger.Entry, an implementation should retract the entry's original value. Otherwise, it should retract the value represented by the supplied entry.The default implementation cannot retract an entry and requires the caller to rebuild the aggregation result.
-
update
Description copied from interface:InvocableMap.StreamingAggregatorReplace the contribution of an entry that was present before and remains present after a map update.The supplied entry is expected to be a
MapTrigger.Entryexposing both its original and current values. The default implementation retracts the original contribution, accumulates the current contribution, and therefore preserves the semantics of an update for aggregators that do not provide a specialized implementation. -
getMaintenanceStatus
Description copied from interface:InvocableMap.StreamingAggregatorReturn the current maintenance status of this aggregator.This method is evaluated after an update has been fully applied, so an aggregator may report
InvocableMap.StreamingAggregator.RetractionResult.STALE_BOUNDfromInvocableMap.StreamingAggregator.retract(Entry)and returnInvocableMap.StreamingAggregator.RetractionResult.UPDATEDhere if accumulating the replacement value restored an exact result.- Specified by:
getMaintenanceStatusin interfaceInvocableMap.StreamingAggregator<K,V, Object, List> - Returns:
- the current maintenance status
-
combine
Description copied from interface:InvocableMap.StreamingAggregatorMerge another partial result into the result. -
getPartialResult
Description copied from interface:InvocableMap.StreamingAggregatorReturn the partial result of the aggregation.- Specified by:
getPartialResultin interfaceInvocableMap.StreamingAggregator<K,V, Object, List> - Returns:
- the partial result of the aggregation
-
finalizeResult
Description copied from interface:InvocableMap.StreamingAggregatorReturn the final result of the aggregation.- Specified by:
finalizeResultin interfaceInvocableMap.StreamingAggregator<K,V, Object, List> - Returns:
- the final result of the aggregation
-
characteristics
public int characteristics()Description copied from interface:InvocableMap.StreamingAggregatorA bit mask representing the set of characteristics of this aggregator.By default, characteristics are a combination of
InvocableMap.StreamingAggregator.PARALLELandInvocableMap.StreamingAggregator.RETAINS_ENTRIES, which is sub-optimal and should be overridden by the aggregator implementation if the aggregator does not need to retain entries (which is often the case).- Specified by:
characteristicsin interfaceInvocableMap.StreamingAggregator<K,V, Object, List> - Returns:
- a bit mask representing the set of characteristics of this aggregator
- See Also:
-
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.- Specified by:
snapshotStatein interfaceInvocableMap.StreamingAggregator<K,V, Object, List> - 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.- Specified by:
restoreStatein interfaceInvocableMap.StreamingAggregator<K,V, Object, List> - Parameters:
oState- the snapshot returned byInvocableMap.StreamingAggregator.snapshotState()
-
ensureInitialized
protected void ensureInitialized()Ensure that this aggregator is initialized. -
readExternal
Restore the contents of this object by loading the object's state from the passed DataInput object.- Specified by:
readExternalin 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:
writeExternalin 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:
readExternalin 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:
writeExternalin interfacePortableObject- Parameters:
out- the PofWriter to which to write the object's state- Throws:
IOException- if an I/O error occurs
-
getAggregators
Obtain the EntryAggregator array.- Returns:
- the EntryAggregator array
-
equals
-
hashCode
public int hashCode()Determine a hash value for the MultiExtractor object according to the generalObject.hashCode()contract. -
toString
-
createInstance
Create an instance of CompositeAggregator based on a specifiedEntryAggregatorarray. If all the aggregators in the specified array are instances ofParallelAwareAggregator, then a parallel-aware instance of the CompositeAggregator will be created.
If at least one of the specified aggregator is not parallel-aware, then the resulting CompositeAggregator will not be parallel-aware and could be ill-suited for aggregations run against large partitioned caches.- Parameters:
aAggregator- an array of EntryAggregator objects; must contain not less than two aggregators
-