public class PofExtractor<T,E> extends AbstractExtractor<T,E> implements PortableObject
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);
ExternalizableHelper.DecoratedMultiBufferReadBuffer, ExternalizableHelper.DefaultObjectStreamFactory, ExternalizableHelper.FormatAwareCompressor, ExternalizableHelper.IntDecoratedObject, ExternalizableHelper.Shielded, ExternalizableHelper.ShieldedDataOutputStream, ExternalizableHelper.ShieldedInputStream, ExternalizableHelper.ShieldedObjectOutputStream, ExternalizableHelper.ShieldedOutputStream, ExternalizableHelper.SimpleXmlBeanClassCache, ExternalizableHelper.Stats, ExternalizableHelper.XmlBeanClassCache
Base.LoggingWriter, Base.StackFrame
KEY, m_nTarget, VALUE
CONVERTER_FROM_BINARY, CONVERTER_STRIP_INTDECO, CONVERTER_TO_BINARY, DECO_APP_1, DECO_APP_2, DECO_APP_3, 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_RSVD_2, 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, MAX_DECO_HEADER_BYTES, PROPERTY_CONFIG, s_streamfactory, TRINT_DOMAIN_SPAN, TRINT_MAX_VALUE, TRINT_MAX_VARIANCE, USE_POF_STREAMS, USE_XMLBEAN_CLASS_CACHE, XMLBEAN_CLASS_CACHE
Constructor and Description |
---|
PofExtractor()
Default constructor (necessary for the PortableObject interface).
|
PofExtractor(Class<E> clz, int iProp)
Constructs a PofExtractor based on a property index.
|
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.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object o)
Compare the PofExtractor with another object to determine equality.
|
E |
extractFromEntry(Map.Entry entry)
Extracts the value from the passed Entry object.
|
E |
extractOriginalFromEntry(MapTrigger.Entry entry)
Extract the value from the "original value" of the passed Entry object or the key (if targeted).
|
Class<E> |
getClassExtracted()
Obtain the Class of the extracted value.
|
PofNavigator |
getNavigator()
Obtain the POF navigator for this extractor.
|
protected int |
getPofTypeId(PofContext ctx)
compute the expected pof type id based on the class.
|
int |
hashCode()
Determine a hash value for the PofExtractor object according to the general
Object.hashCode() contract. |
void |
readExternal(PofReader in)
Restore the contents of a user type instance by reading its state using the specified PofReader object.
|
String |
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.
|
compare, compareEntries, extract, getTarget
asBinary, calculatePackedLength, calculatePackedLength, convertUTF, decodeExpiry, decorate, decorate, decorate, decorate, decorate, decorateBinary, encodeExpiry, ensureSerializer, extractIntDecoration, fromBinary, fromBinary, fromBinary, fromByteArray, fromByteArray, getDecoration, getDecoration, getDecorations, getDeltaCompressor, getInputStream, getNewObjectInput, getObjectInput, getObjectOutput, getObjectStreamFactory, getOutputStream, getShieldedOutputStream, getStreamFormat, getUndecorated, getUndecorated, isDecorated, isDecorated, isIntDecorated, isIntDecorated, isResolving, isSerializable, isSerializerCompatible, isVersionCompatible, isVersionCompatible, loadClass, loadResource, main, makeTrint, readBigDecimal, readBigInteger, readBooleanArray, readByteArray, readCollection, readDate, readDoubleArray, readExternalizableLite, readExternalizableLite, readFloatArray, readInt, readInt, readIntArray2d, readLong, readLong, readMap, readMap, readObject, readObject, readSafeUTF, readSafeUTF, readSerializable, readSerializable, readStringArray, readTime, readTimestamp, readTrint, readUnsignedTrint, readUTF, readXmlBean, readXmlSerializable, readXmlSerializable, realize, removeIntDecoration, removeIntDecoration, replace, reportIncompatibleSerializers, setObjectStreamFactory, toBinary, toBinary, toByteArray, toByteArray, toByteArray, toLiteBinary, toLong, undecorate, undecorate, validateBufferSize, 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
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
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, getRandom, getRandomBinary, getRandomBinary, getRandomString, getSafeTimeMillis, getStackFrame, getStackFrames, getStackTrace, getStackTrace, getThreadFactory, getTimeZone, getUpTimeMillis, hashCode, hexValue, indentString, indentString, isDecimal, isHex, isLogEcho, isOctal, log, log, log, log, log, makeInteger, makeLong, makeThread, 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, 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
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
andThen, apply, applyAsDouble, applyAsInt, applyAsLong, compose, identity, identityCast, of
andThen, compose
comparing, comparing, comparingDouble, comparingInt, comparingLong, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
public PofExtractor()
public PofExtractor(Class<E> clz, int iProp)
This constructor is equivalent to:
PofExtractor extractor = new PofExtractor(clz, new SimplePofPath(iProp), VALUE);
clz
- the required class of the extracted value or null if the class is to be inferred from the serialized stateiProp
- property indexpublic PofExtractor(Class<E> clz, PofNavigator navigator)
This constructor is equivalent to:
PofExtractor extractor = new PofExtractor(clz, navigator, VALUE);
clz
- the required class of the extracted value or null if the class is to be inferred from the serialized statenavigator
- POF navigatorpublic PofExtractor(Class<E> clz, PofNavigator navigator, int nTarget)
clz
- the required class of the extracted value or null if the class is to be inferred from the serialized statenavigator
- POF navigatornTarget
- one of the AbstractExtractor.VALUE
or AbstractExtractor.KEY
valuespublic E extractFromEntry(Map.Entry entry)
It is expected that this extractor will only be used against POF-encoded entries implementing BinaryEntry
interface.
extractFromEntry
in class AbstractExtractor<T,E>
entry
- an Entry object to extract a value fromUnsupportedOperationException
- if the specified Entry is not a POF-encoded BinaryEntry
or the serializer is not a PofContextClassCastException
- if the extracted value is incompatible with the specified classpublic E extractOriginalFromEntry(MapTrigger.Entry entry)
AbstractExtractor
AbstractExtractor.extractFromEntry(java.util.Map.Entry)
method.extractOriginalFromEntry
in class AbstractExtractor<T,E>
entry
- an Entry object whose original value should be used to extract the desired value frompublic PofNavigator getNavigator()
public Class<E> getClassExtracted()
public boolean equals(Object o)
equals
in interface Comparator
equals
in class Object
public int hashCode()
Object.hashCode()
contract.public String toString()
public void readExternal(PofReader in) throws IOException
readExternal
in interface PortableObject
in
- the PofReader from which to read the object's stateIOException
- if an I/O error occurspublic void writeExternal(PofWriter out) throws IOException
writeExternal
in interface PortableObject
out
- the PofWriter to which to write the object's stateIOException
- if an I/O error occursprotected int getPofTypeId(PofContext ctx)
ctx
- pof context