Package com.tangosol.util.extractor
Class ChainedExtractor<T,E> 
java.lang.Object
com.tangosol.util.Base
com.tangosol.util.BitHelper
com.tangosol.util.ExternalizableHelper
com.tangosol.util.extractor.AbstractExtractor<T,E>
 
com.tangosol.util.extractor.AbstractCompositeExtractor<T,E>
 
com.tangosol.util.extractor.ChainedExtractor<T,E> 
- All Implemented Interfaces:
- CanonicallyNamed,- ExternalizableLite,- PortableObject,- QueryMapComparator,- Remote.Function<T,,- E> - Remote.ToDoubleFunction<T>,- Remote.ToIntFunction<T>,- Remote.ToLongFunction<T>,- ValueExtractor<T,,- E> - Serializable,- Comparator,- Function<T,,- E> - ToDoubleFunction<T>,- ToIntFunction<T>,- ToLongFunction<T>
Composite ValueExtractor implementation based on an array of extractors.
 The extractors in the array are applied sequentially left-to-right, so a
 result of a previous extractor serves as a target object for a next one.
- Author:
- gg 2003.09.22
- See Also:
- 
Nested Class SummaryNested classes/interfaces inherited from class com.tangosol.util.ExternalizableHelperExternalizableHelper.DecoratedMultiBufferReadBuffer, 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 com.tangosol.util.BaseBase.LoggingWriter
- 
Field SummaryFields inherited from class com.tangosol.util.extractor.AbstractCompositeExtractorm_aExtractorFields inherited from class com.tangosol.util.extractor.AbstractExtractorKEY, m_nTarget, m_sNameCanon, VALUEFields inherited from class com.tangosol.util.ExternalizableHelperBINARY_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_TOPLINK, 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 SummaryConstructorsConstructorDescriptionDefault constructor (necessary for the ExternalizableLite interface).ChainedExtractor(ValueExtractor[] aExtractor) Construct a ChainedExtractor based on a specified ValueExtractor array.ChainedExtractor(ValueExtractor<? super T, ? extends U> extractor1, ValueExtractor<? super U, ? extends E> extractor2) Construct a ChainedExtractor based on two extractors.ChainedExtractor(String sName) Construct a ChainedExtractor for a specified method name sequence.
- 
Method SummaryModifier and TypeMethodDescription<V> ValueExtractor<T, V> andThen(ValueExtractor<? super E, ? extends V> after) Returns a composed extractor that first applies this extractor to its input, and then applies theafterextractor to the result.<V> ValueExtractor<V, E> compose(ValueExtractor<? super V, ? extends T> before) Returns a composed extractor that first applies thebeforeextractor to its input, and then applies this extractor to the result.protected intReturn the target of the first extractor in composite extractor.static ValueExtractor[]createExtractors(String sName) Parse a dot-delimited sequence of method names and instantiate a corresponding array ofReflectionExtractorobjects.voidEnsure that this target is correct after first extractor manually updated.Extract the value from the passed object.extractFromEntry(Map.Entry entry) Extract the value from the passed entry.Extract the value from the "original value" of the passed Entry object or the key (if targeted).Compute a canonical name as a dot-separated concatenation of the canonical name of eachValueExtractorarray element, starting from lowest index array element.protected static ValueExtractor[]merge(ValueExtractor[] aHead, ValueExtractor[] aTail) Return aValueExtractorarray with the provided arrays merged into a single array.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.Methods inherited from class com.tangosol.util.extractor.AbstractCompositeExtractorequals, getExtractors, hashCode, toString, writeExternal, writeExternalMethods inherited from class com.tangosol.util.extractor.AbstractExtractorcompare, compareEntries, getTarget, isCanonicallyEquatableMethods inherited from class com.tangosol.util.ExternalizableHelperasBinary, 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, 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, writeXmlSerializableMethods inherited from class com.tangosol.util.BitHelpercountBits, 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 com.tangosol.util.Baseazzert, 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, waitMethods inherited from class java.lang.Objectclone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.Comparatorreversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLongMethods inherited from interface com.tangosol.util.function.Remote.FunctionandThen, composeMethods inherited from interface com.tangosol.util.ValueExtractorapply, applyAsDouble, applyAsInt, applyAsLong, fromKey
- 
Constructor Details- 
ChainedExtractorpublic ChainedExtractor()Default constructor (necessary for the ExternalizableLite interface).
- 
ChainedExtractorConstruct a ChainedExtractor based on a specified ValueExtractor array.- Parameters:
- aExtractor- the ValueExtractor array
 
- 
ChainedExtractorpublic ChainedExtractor(ValueExtractor<? super T, ? extends U> extractor1, ValueExtractor<? super U, ? extends E> extractor2) Construct a ChainedExtractor based on two extractors.- Type Parameters:
- U- the type of value that will be extracted in the first ValueExtractor
- Parameters:
- extractor1- the first ValueExtractor
- extractor2- the second ValueExtractor
 
- 
ChainedExtractorConstruct a ChainedExtractor for a specified method name sequence.- Parameters:
- sName- a dot-delimited sequence of method names which results in a ChainedExtractor that is based on an array of corresponding- ReflectionExtractorobjects
 
 
- 
- 
Method Details- 
ensureTargetpublic void ensureTarget()Ensure that this target is correct after first extractor manually updated.
- 
extractExtract the value from the passed object. The underlying extractors are applied sequentially, so a result of a previous extractor serves as a target object for a next one. A value of null prevents any further extractions and is returned immediately. For intrinsic types, the returned value is expected to be a standard wrapper type in the same manner that reflection works; for example, int would be returned as a java.lang.Integer.- Specified by:
- extractin interface- ValueExtractor<T,- E> 
- Overrides:
- extractin class- AbstractExtractor<T,- E> 
- Parameters:
- oTarget- the object to extract the value from
- Returns:
- the extracted value; null is an acceptable value
 
- 
extractFromEntryExtract the value from the passed entry. The underlying extractors are applied sequentially, so a result of a previous extractor serves as a target object for a next one. A value of null prevents any further extractions and is returned immediately. For intrinsic types, the returned value is expected to be a standard wrapper type in the same manner that reflection works; for example, int would be returned as a java.lang.Integer.- Overrides:
- extractFromEntryin class- AbstractExtractor<T,- E> 
- Parameters:
- entry- an Entry object to extract a desired value from
- Returns:
- the extracted value
 
- 
extractOriginalFromEntryDescription copied from class:AbstractExtractorExtract 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:
- extractOriginalFromEntryin class- AbstractExtractor<T,- E> 
- 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
 
- 
composeDescription copied from interface:ValueExtractorReturns a composed extractor that first applies thebeforeextractor to its input, and then applies this extractor to the result. If evaluation of either extractor throws an exception, it is relayed to the caller of the composed extractor.- Type Parameters:
- V- the type of input to the- beforeextractor, and to the composed extractor
- Parameters:
- before- the extractor to apply before this extractor is applied
- Returns:
- a composed extractor that first applies the beforeextractor and then applies this extractor
- See Also:
 
- 
andThenDescription copied from interface:ValueExtractorReturns a composed extractor that first applies this extractor to its input, and then applies theafterextractor to the result. If evaluation of either extractor throws an exception, it is relayed to the caller of the composed extractor.- Type Parameters:
- V- the type of output of the- afterextractor, and of the composed extractor
- Parameters:
- after- the extractor to apply after this extractor is applied
- Returns:
- a composed extractor that first applies this extractor and then
         applies the afterextractor
- See Also:
 
- 
getCanonicalNameCompute a canonical name as a dot-separated concatenation of the canonical name of eachValueExtractorarray element, starting from lowest index array element.- Specified by:
- getCanonicalNamein interface- CanonicallyNamed
- Specified by:
- getCanonicalNamein interface- ValueExtractor<T,- E> 
- Overrides:
- getCanonicalNamein class- AbstractExtractor<T,- E> 
- Returns:
- canonical name reflecting this instance's array of ValueExtractors.
 
- 
readExternalRestore the contents of this object by loading the object's state from the passed DataInput object.- Specified by:
- readExternalin interface- ExternalizableLite
- Overrides:
- readExternalin class- AbstractCompositeExtractor<T,- E> 
- 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
 
- 
readExternalRestore the contents of a user type instance by reading its state using the specified PofReader object.- Specified by:
- readExternalin interface- PortableObject
- Overrides:
- readExternalin class- AbstractCompositeExtractor<T,- E> 
- Parameters:
- in- the PofReader from which to read the object's state
- Throws:
- IOException- if an I/O error occurs
 
- 
createExtractorsParse a dot-delimited sequence of method names and instantiate a corresponding array ofReflectionExtractorobjects.- Parameters:
- sName- a dot-delimited sequence of method names
- Returns:
- an array of ReflectionExtractorobjects
 
- 
mergeReturn aValueExtractorarray with the provided arrays merged into a single array.- Parameters:
- aHead- the first group of elements in the returned array
- aTail- the second group of elements in the returned array
- Returns:
- a ValueExtractor array with the provided arrays merged into a single array
 
- 
computeTargetprotected int computeTarget()Return the target of the first extractor in composite extractor.Enables equivalence between KeyExtractor("foo.bar") and ChainExtractor(ReflectionExtractor("foo", null, KEY), ReflectionExtractor("bar")). - Returns:
- the target of the first extractor in CompositeExtractor.
- Since:
- 12.2.1.4
 
 
-