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.XmlBeanClassCacheBase.LoggingWriter, Base.StackFrameKEY, m_nTarget, m_sNameCanon, VALUECHUNK_SIZE, CHUNK_THRESHOLD, 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, s_tloInEHDeserialize, 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,
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.
|
| 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()
Return the hashCode of a non-null
canonical name;
otherwise, the hash code is PofNavigator.hashCode() implementation. |
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, getCanonicalName, getTarget, isCanonicallyEquatableasBinary, 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, writeXmlSerializablecountBits, countBits, countBits, indexOfLSB, indexOfLSB, indexOfLSB, indexOfMSB, indexOfMSB, indexOfMSB, rotateLeft, rotateLeft, rotateLeft, rotateRight, rotateRight, rotateRight, toBitString, toBitString, toBitString, toBytes, toBytes, toBytes, toBytes, toInt, toInt, toLongazzert, 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, waitclone, finalize, getClass, notify, notifyAll, wait, wait, waitandThen, apply, applyAsDouble, applyAsInt, applyAsLong, compose, fromKey, identity, identityCast, ofandThen, composecomparing, comparing, comparingDouble, comparingInt, comparingLong, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLongpublic 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, int iProp, String sNameCanon)
ValueExtractor instances with same canonical name.
See ValueExtractor.equals(Object) and
ValueExtractor.getCanonicalName().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 extractorpublic 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 PofExtractor(Class<E> clz, PofNavigator navigator, int nTarget, String sNameCanon)
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 valuessNameCanon - canonical name for this extractorpublic PofExtractor(Class<E> clz, PofNavigator navigator, String sNameCanon)
clz - the required class of the extracted value or null if
the class is to be inferred from the serialized statenavigator - POF navigatorsNameCanon - canonical name for this extractorpublic 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)
AbstractExtractorAbstractExtractor.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)
AbstractExtractor.equals(Object) contract takes precedence when applicable,
falling back to implementation specific equals when this and o
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).
equals in interface ValueExtractor<T,E>equals in interface Comparatorequals in class AbstractExtractor<T,E>o - the reference object with which to comparepublic int hashCode()
canonical name;
otherwise, the hash code is PofNavigator.hashCode() implementation.hashCode in interface ValueExtractor<T,E>hashCode in class AbstractExtractor<T,E>ValueExtractor.hashCode()public String toString()
public void readExternal(PofReader in) throws IOException
readExternal in interface PortableObjectin - 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 PortableObjectout - the PofWriter to which to write the object's stateIOException - if an I/O error occursprotected int getPofTypeId(PofContext ctx)
ctx - pof context