Class ReducerAggregator<K,V,T,E>
- Type Parameters:
K- the type of the Map entry keysV- the type of the Map entry valuesT- the type of the value to extract fromE- the type of the extracted value
- All Implemented Interfaces:
ExternalizableLite, PortableObject, InvocableMap.EntryAggregator<K,V, Map<K, E>>, InvocableMap.StreamingAggregator<K, V, Object, Map<K, E>>, Serializable, Cloneable
CacheMap.getAll(Collection) API. Instead of returning the complete
set of values, it will return a portion of value attributes based on the
provided ValueExtractor.
This aggregator could be used in combination with
MultiExtractor allowing one
to collect tuples that are a subset of the attributes of each object stored in
the cache.
- Author:
- djl 2009.03.02
- 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
FieldsFields 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
ConstructorsConstructorDescriptionDefault constructor (necessary for the ExternalizableLite interface).ReducerAggregator(ValueExtractor<? super T, ? extends E> extractor) Construct a ReducerAggregator based on the specified extractor.ReducerAggregator(String sMethod) Construct a ReducerAggregator based on the specified method name. -
Method Summary
Modifier and TypeMethodDescriptionintA bit mask representing the set of characteristics of this aggregator.Return a map that can be used to store reduced values, creating it if one has not already been created.finalizeResult(boolean fFinal) Obtain the result of the aggregation.protected voidinit(boolean fFinal) Initialize the aggregation result.protected voidIncorporate one aggregatable value into the result.voidprocessEntry(InvocableMap.Entry<? extends K, ? extends V> entry) Incorporate one aggregatable entry into the result.voidrestoreState(Object oState) Restore a maintenance-state snapshot into this empty supplied instance.retract(InvocableMap.Entry<? extends K, ? extends V> 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.update(InvocableMap.Entry<? extends K, ? extends V> entry) Replace the contribution of an entry that was present before and remains present after a map update.Methods inherited from class AbstractAggregator
accumulate, accumulate, combine, ensureInitialized, equals, finalizeResult, getPartialResult, getValueExtractor, hashCode, isReplacementRequired, readExternal, readExternal, remove, replace, toString, writeExternal, writeExternalMethods 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, finalizeResult, getMaintenanceStatus, isAllowInconsistencies, isByMember, isByPartition, isContinuous, isParallel, isPresentOnly, isRetainsEntries, isSerial, isStateCheckpointable
-
Field Details
-
m_map
-
-
Constructor Details
-
ReducerAggregator
public ReducerAggregator()Default constructor (necessary for the ExternalizableLite interface). -
ReducerAggregator
Construct a ReducerAggregator based on the specified method name.- Parameters:
sMethod- the name of the method that is used to extract the portion of the cached value
-
ReducerAggregator
Construct a ReducerAggregator based on the specified extractor.- Parameters:
extractor- the extractor that is used to extract the portion of the cached value
-
-
Method Details
-
supply
Description copied from interface:InvocableMap.StreamingAggregatorCreate a new instance of this aggregator. -
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).- 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.- 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:
oState- the snapshot returned byInvocableMap.StreamingAggregator.snapshotState()
-
init
protected void init(boolean fFinal) Initialize the aggregation result.- Specified by:
initin classAbstractAggregator<K,V, T, E, Map<K, E>> - 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
-
processEntry
Incorporate one aggregatable entry into the result.- Overrides:
processEntryin classAbstractAggregator<K,V, T, E, Map<K, E>> - Parameters:
entry- the entry to incorporate into the aggregation result
-
retract
public InvocableMap.StreamingAggregator.RetractionResult retract(InvocableMap.Entry<? extends K, ? extends V> entry) 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
public InvocableMap.StreamingAggregator.RetractionResult update(InvocableMap.Entry<? extends K, ? extends V> entry) 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. -
process
Incorporate one aggregatable value into the result.If the fFinal parameter is true, the given object is a partial result (returned by an individual parallel aggregator) that should be incorporated into the final result; otherwise, the object is a value extracted from an
InvocableMap.Entry. -
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<K,V, T, E, Map<K, E>> - 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
-
ensureMap
-