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.XmlBeanClassCache
Nested 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, 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 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 TypeMethodDescriptionboolean
Compare 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).Obtain the Class of the extracted value.Obtain the POF navigator for this extractor.protected int
getPofTypeId
(PofContext ctx) compute the expected pof type id based on the class.int
hashCode()
Return the hashCode of a non-nullcanonical name
; otherwise, the hash code isPofNavigator.hashCode() implementation
.void
Restore 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.void
writeExternal
(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, 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
-
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 otherValueExtractor
instances 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
BinaryEntry
interface.- Overrides:
extractFromEntry
in 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-encodedBinaryEntry
or the serializer is not a PofContextClassCastException
- if the extracted value is incompatible with the specified class
-
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<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
-
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 ando
have 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:
equals
in interfaceComparator<T>
- Specified by:
equals
in interfaceValueExtractor<T,
E> - Overrides:
equals
in 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:
hashCode
in interfaceValueExtractor<T,
E> - Overrides:
hashCode
in 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:
readExternal
in 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:
writeExternal
in 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.
-