Class PofExtractor<T,E>
- All Implemented Interfaces:
CanonicallyNamed,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>
POF uses a compact form in the serialized value when possible. For example, some numeric values are represented as special POF intrinsic types in which the type implies the value. As a result, POF requires the receiver of a value to have implicit knowledge of the type. PofExtractor uses the class supplied in the constructor as the source of the type information. If the class is null, PofExtractor will infer the type from the serialized state.
Example where extracted value is double:
PofExtractor extractor = new PofExtractor(double.class, 3);
Example where extracted value should be inferred:
PofExtractor extractor = new PofExtractor(null, 4);
- Since:
- Coherence 3.5
- Author:
- as 2009.02.14
- 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.XmlBeanClassCacheNested classes/interfaces inherited from class com.tangosol.util.Base
Base.LoggingWriter -
Field Summary
Fields inherited from class com.tangosol.util.extractor.AbstractExtractor
KEY, m_nTarget, m_sNameCanon, VALUEFields 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_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, s_tloInEHDeserialize, TRINT_DOMAIN_SPAN, TRINT_MAX_VALUE, TRINT_MAX_VARIANCE, USE_POF_STREAMS, USE_XMLBEAN_CLASS_CACHE, XMLBEAN_CLASS_CACHE -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor (necessary for the PortableObject interface).PofExtractor(Class<E> clz, int iProp) Constructs a PofExtractor based on a property index.PofExtractor(Class<E> clz, int iProp, String sNameCanon) Constructs a PofExtractor based on a property index while providing the property's canonical name.PofExtractor(Class<E> clz, PofNavigator navigator) Constructs a PofExtractor based on a POF navigator.PofExtractor(Class<E> clz, PofNavigator navigator, int nTarget) Constructs a PofExtractor based on a POF navigator and the entry extraction target.PofExtractor(Class<E> clz, PofNavigator navigator, int nTarget, String sNameCanon) Constructs a PofExtractor based on a POF navigator while providing its canonical name.PofExtractor(Class<E> clz, PofNavigator navigator, String sNameCanon) Constructs a VALUE PofExtractor based on a POF navigator while providing its canonical name. -
Method Summary
Modifier and TypeMethodDescriptionbooleanCompare the PofExtractor with another object to determine equality.extractFromEntry(Map.Entry entry) Extracts the value from the passed Entry object.Extract the value from the "original value" of the passed Entry object or the key (if targeted).fromKey()Obtain a version of thisValueExtractorthat targets an entry's key.Obtain the Class of the extracted value.Obtain the POF navigator for this extractor.protected intgetPofTypeId(PofContext ctx) compute the expected pof type id based on the class.inthashCode()Return the hashCode of a non-nullcanonical name; otherwise, the hash code isPofNavigator.hashCode() implementation.voidRestore the contents of a user type instance by reading its state using the specified PofReader object.toString()Return a human-readable description for this PofExtractor.voidwriteExternal(PofWriter out) Save the contents of a POF user type instance by writing its state using the specified PofWriter object.Methods inherited from class com.tangosol.util.extractor.AbstractExtractor
compare, compareEntries, extract, getCanonicalName, getTarget, isCanonicallyEquatableMethods 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, 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, writeIntArray, writeIntArray2d, writeLong, writeLong, writeLongArray, writeMap, writeObject, writeSafeUTF, writeSafeUTF, writeSerializable, writeStringArray, writeTime, writeTimestamp, writeTrint, writeTrint, writeUTF, writeXmlBean, writeXmlSerializableMethods 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, toLongMethods 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, 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 class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.Comparator
reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLongMethods inherited from interface com.tangosol.util.function.Remote.Function
andThen, composeMethods inherited from interface com.tangosol.util.ValueExtractor
andThen, apply, applyAsDouble, applyAsInt, applyAsLong, compose
-
Constructor Details
-
PofExtractor
public PofExtractor()Default constructor (necessary for the PortableObject interface). -
PofExtractor
Constructs a PofExtractor based on a property index.This constructor is equivalent to:
PofExtractor extractor = new PofExtractor(clz, new SimplePofPath(iProp), VALUE);- Parameters:
clz- the required class of the extracted value or null if the class is to be inferred from the serialized stateiProp- property index
-
PofExtractor
Constructs a PofExtractor based on a property index while providing the property's canonical name. Providing an appropriate canonical name enables equivalence with otherValueExtractorinstances with same canonical name. SeeValueExtractor.equals(Object)andValueExtractor.getCanonicalName().- Parameters:
clz- the required class of the extracted value or null if the class is to be inferred from the serialized stateiProp- property indexsNameCanon- the canonical name for this extractor- Since:
- 12.2.1.4
-
-
Method Details
-
extractFromEntry
Extracts the value from the passed Entry object.It is expected that this extractor will only be used against POF-encoded entries implementing
BinaryEntryinterface.- Overrides:
extractFromEntryin classAbstractExtractor<T,E> - Parameters:
entry- an Entry object to extract a value from- Returns:
- the extracted value
- Throws:
UnsupportedOperationException- if the specified Entry is not a POF-encodedBinaryEntryor the serializer is not a PofContextClassCastException- if the extracted value is incompatible with the specified class
-
extractOriginalFromEntry
Description 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 classAbstractExtractor<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
-
fromKey
Description copied from interface:ValueExtractorObtain a version of thisValueExtractorthat targets an entry's key.- Specified by:
fromKeyin interfaceValueExtractor<T,E> - Returns:
- a version of this
ValueExtractorthat targets an entry's key
-
getClassExtracted
Obtain the Class of the extracted value.- Returns:
- the expected Class
-
equals
Compare the PofExtractor with another object to determine equality.AbstractExtractor.equals(Object)contract takes precedence when applicable, falling back to implementation specific equals when this andohave non-null canonical name.Two PofExtractor objects are considered equal iff their navigators are equal and they have the same target (key or value).
- Specified by:
equalsin interfaceComparator<T>- Specified by:
equalsin interfaceValueExtractor<T,E> - Overrides:
equalsin classAbstractExtractor<T,E> - Parameters:
o- the reference object with which to compare- Returns:
- true iff this PofExtractor and the passed object are equivalent
-
hashCode
public int hashCode()Return the hashCode of a non-nullcanonical name; otherwise, the hash code isPofNavigator.hashCode() implementation.- Specified by:
hashCodein interfaceValueExtractor<T,E> - Overrides:
hashCodein classAbstractExtractor<T,E> - Returns:
- an integer hash value for this PofExtractor object
- See Also:
-
toString
Return a human-readable description for this PofExtractor. -
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
-
getPofTypeId
compute the expected pof type id based on the class.- Parameters:
ctx- pof context- Returns:
- pof type id or T_UNKNOWN if the class is null.
-