Class MultiExtractor
- All Implemented Interfaces:
CanonicallyNamed
,ExternalizableLite
,PortableObject
,QueryMapComparator
,Remote.Function
,Remote.ToDoubleFunction
,Remote.ToIntFunction
,Remote.ToLongFunction
,ValueExtractor
,Serializable
,Comparator
,Function
,ToDoubleFunction
,ToIntFunction
,ToLongFunction
List
of extracted
values.
Common scenarios for using the MultiExtractor involve the
DistinctValues
or
GroupAggregator
aggregators, that allow clients to collect all distinct combinations of a
given set of attributes or collect and run additional aggregation against
the corresponding groups of entries.
- Since:
- Coherence 3.2
- Author:
- gg 2006.02.08
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.tangosol.util.ExternalizableHelper
ExternalizableHelper.DecoratedMultiBufferReadBuffer, ExternalizableHelper.DefaultObjectStreamFactory, ExternalizableHelper.FormatAwareCompressor, ExternalizableHelper.IntDecoratedObject, ExternalizableHelper.Shielded, ExternalizableHelper.ShieldedDataOutputStream, ExternalizableHelper.ShieldedInputStream, ExternalizableHelper.ShieldedObjectOutputStream, ExternalizableHelper.ShieldedOutputStream, ExternalizableHelper.SimpleXmlBeanClassCache, ExternalizableHelper.Stats, ExternalizableHelper.XmlBeanClassCache
Nested classes/interfaces inherited from class com.tangosol.util.Base
Base.LoggingWriter
-
Field Summary
Fields inherited from class com.tangosol.util.extractor.AbstractCompositeExtractor
m_aExtractor
Fields inherited from class com.tangosol.util.extractor.AbstractExtractor
KEY, m_nTarget, m_sNameCanon, VALUE
Fields inherited from class com.tangosol.util.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_QUEUE_METADATA, DECO_RSVD_1, DECO_STORE, DECO_TX, DECO_VALUE, 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, PACKED_INT_SIZE, PACKED_LONG_SIZE, PROPERTY_CONFIG, s_streamfactory, TRINT_DOMAIN_SPAN, TRINT_MAX_VALUE, TRINT_MAX_VARIANCE, USE_POF_STREAMS, USE_XMLBEAN_CLASS_CACHE, XMLBEAN_CLASS_CACHE
-
Constructor Summary
ConstructorDescriptionDefault constructor (necessary for the ExternalizableLite interface).MultiExtractor
(ValueExtractor[] aExtractor) Construct a MultiExtractor.MultiExtractor
(String sNames) Construct a MultiExtractor for a specified method name list. -
Method Summary
Modifier and TypeMethodDescriptionint
compareEntries
(QueryMap.Entry entry1, QueryMap.Entry entry2) Compare two entries based on the rules specified byComparator
.static ValueExtractor[]
createExtractors
(String sNames) Parse a comma-delimited sequence of method names and instantiate a corresponding array ofValueExtractor
objects.Extract a collection of values from the passed object using the underlying array of ValueExtractor objects.extractFromEntry
(Map.Entry entry) Extract a collection of values from the passed entry using the underlying array of ValueExtractor objects.Extract the value from the "original value" of the passed Entry object or the key (if targeted).Methods inherited from class com.tangosol.util.extractor.AbstractCompositeExtractor
equals, getExtractors, hashCode, readExternal, readExternal, toString, writeExternal, writeExternal
Methods inherited from class com.tangosol.util.extractor.AbstractExtractor
compare, getCanonicalName, getTarget, isCanonicallyEquatable
Methods inherited from class com.tangosol.util.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, isResolving, isSerializable, isSerializerCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, loadClass, loadResource, main, makeTrint, 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, setObjectStreamFactory, toBinary, toBinary, toBinary, toByteArray, toByteArray, toByteArray, toLiteBinary, toLong, undecorate, undecorate, validateBufferSize, validateLoadArray, validateLoadClass, writeBigDecimal, writeBigInteger, writeBooleanArray, writeByteArray, writeCollection, writeDate, writeDoubleArray, writeExternalizableLite, writeFloatArray, writeInt, writeInt, writeIntArray2d, writeLong, writeLong, writeMap, writeObject, writeSafeUTF, writeSafeUTF, writeSerializable, writeStringArray, writeTime, writeTimestamp, writeTrint, writeTrint, writeUTF, writeXmlBean, writeXmlSerializable
Methods inherited from class com.tangosol.util.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, toLong
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
Methods inherited from interface com.tangosol.util.function.Remote.Function
andThen, compose
Methods inherited from interface com.tangosol.util.ValueExtractor
andThen, apply, applyAsDouble, applyAsInt, applyAsLong, compose, fromKey
-
Constructor Details
-
MultiExtractor
public MultiExtractor()Default constructor (necessary for the ExternalizableLite interface). -
MultiExtractor
Construct a MultiExtractor.- Parameters:
aExtractor
- the ValueExtractor array
-
MultiExtractor
Construct a MultiExtractor for a specified method name list.- Parameters:
sNames
- a comma-delimited sequence of method names which results in a MultiExtractor that is based on a corresponding array ofValueExtractor
objects; individual array elements will be eitherReflectionExtractor
orChainedExtractor
objects
-
-
Method Details
-
extract
Extract a collection of values from the passed object using the underlying array of ValueExtractor objects. Note that each individual value could be an object of a standard wrapper type (for intrinsic types) or null.- Specified by:
extract
in interfaceValueExtractor
- Overrides:
extract
in classAbstractExtractor
- Parameters:
oTarget
- an Object to retrieve the collection of values from- Returns:
- a
List
containing the extracted values or null if the target object itself is null
-
extractFromEntry
Extract a collection of values from the passed entry using the underlying array of ValueExtractor objects. Note that each individual value could be an object of a standard wrapper type (for intrinsic types) or null.- Overrides:
extractFromEntry
in classAbstractExtractor
- Parameters:
entry
- an entry to retrieve the collection of values from- Returns:
- a
List
containing the extracted values
-
extractOriginalFromEntry
Description copied from class:AbstractExtractor
Extract the value from the "original value" of the passed Entry object or the key (if targeted). This method's conventions are exactly the same as for theAbstractExtractor.extractFromEntry(java.util.Map.Entry)
method.- Overrides:
extractOriginalFromEntry
in classAbstractExtractor
- Parameters:
entry
- an Entry object whose original value should be used to extract the desired value from- Returns:
- the extracted value or null if the original value is not present
-
compareEntries
Compare two entries based on the rules specified byComparator
.If possible, use the
extract
method to optimize the value extraction process.This method is expected to be implemented by Comparator wrappers, such as
ChainedComparator
andInverseComparator
, which simply pass on this invocation to the wrapped Comparator objects if they too implement this interface, or to invoke their default compare method passing the actual objects (not the extracted values) obtained from the extractor using the passed entries.This interface is also expected to be implemented by ValueExtractor implementations that implement the Comparator interface. It is expected that in most cases, the Comparator wrappers will eventually terminate at (i.e. delegate to) ValueExtractors that also implement this interface.
- Specified by:
compareEntries
in interfaceQueryMapComparator
- Overrides:
compareEntries
in classAbstractExtractor
- 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
-
createExtractors
Parse a comma-delimited sequence of method names and instantiate a corresponding array ofValueExtractor
objects. Individual array elements will be eitherReflectionExtractor
orChainedExtractor
objects.- Parameters:
sNames
- a comma-delimited sequence of method names- Returns:
- an array of
ValueExtractor
objects
-