Package com.tangosol.util.transformer
Class ExtractorEventTransformer<K,V,E>
java.lang.Object
com.tangosol.util.Base
com.tangosol.util.BitHelper
com.tangosol.util.ExternalizableHelper
com.tangosol.util.transformer.ExtractorEventTransformer<K,V,E>
- All Implemented Interfaces:
ExternalizableLite
,PortableObject
,MapEventTransformer<K,
,V, E> Serializable
public class ExtractorEventTransformer<K,V,E>
extends ExternalizableHelper
implements MapEventTransformer<K,V,E>, ExternalizableLite, PortableObject
ExtractorEventTransformer is a special purpose
MapEventTransformer
implementation that transforms emitted events, extracting one or more
properties from either the OldValue or the NewValue. This transformation
will generally result in the change of the values' data type.
Example: the following code will register a listener to receive events only if the value of the AccountBalance property changes. The transformed event's NewValue will be a List containing the LastTransactionTime and AccountBalance properties. The OldValue will always be null.
Filter filter = new ValueChangeEventFilter("getAccountBalance"); ValueExtractor extractor = new MultiExtractor("getLastTransactionTime,getAccountBalance"); MapEventTransformer transformer = new ExtractorEventTransformer(null, extractor); cache.addMapListener(listener, new MapEventTransformerFilter(filter, transformer), false);
- Since:
- Coherence 3.4
- Author:
- gg 2008.06.01
- 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.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
ConstructorDescriptionNo-argument constructor for lite deserialization.ExtractorEventTransformer
(ValueExtractor<? super V, ? extends E> extractor) Construct a ExtractorEventTransformer that transforms MapEvent values based on the specified extractor.ExtractorEventTransformer
(ValueExtractor<? super V, ? extends E> extractorOld, ValueExtractor<? super V, ? extends E> extractorNew) Construct a ExtractorEventTransformer that transforms MapEvent values based on the specified extractors.ExtractorEventTransformer
(String sMethod) Construct a ExtractorEventTransformer that transforms MapEvent's values based on the specified method name. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Compare the ExtractorEventTransformer with another object to determine equality.Return a ValueExtractor used to transfrom the event's NewValue.Return a ValueExtractor used to transfrom the event's OldValue.int
hashCode()
Determine a hash value for the ExtractorEventTransformer object according to the generalObject.hashCode()
contract.void
Restore the contents of a user type instance by reading its state using the specified PofReader object.void
Restore the contents of this object by loading the object's state from the passed DataInput object.toString()
Provide a human-readable representation of this object.Transform the specified MapEvent using the corresponding extractors.void
writeExternal
(PofWriter out) Save the contents of a POF user type instance by writing its state using the specified PofWriter object.void
writeExternal
(DataOutput out) Save the contents of this object by storing the object's state into the passed DataOutput object.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 com.tangosol.util.MapEventTransformer
andThen
-
Constructor Details
-
ExtractorEventTransformer
public ExtractorEventTransformer()No-argument constructor for lite deserialization. -
ExtractorEventTransformer
Construct a ExtractorEventTransformer that transforms MapEvent values based on the specified extractor.Note: The specified extractor will be applied to both old and new values.
- Parameters:
extractor
- ValueExtractor to extract MapEvent values
-
ExtractorEventTransformer
Construct a ExtractorEventTransformer that transforms MapEvent's values based on the specified method name. The name could be a comma-delimited sequence of method names which will result in a MultiExtractor that is based on a corresponding array ofValueExtractor
objects; individual array elements will be eitherReflectionExtractor
orChainedExtractor
objects.Note: The specified extractor will be applied to both old and new values.
- Parameters:
sMethod
- the name of the method to invoke via reflection
-
ExtractorEventTransformer
public ExtractorEventTransformer(ValueExtractor<? super V, ? extends E> extractorOld, ValueExtractor<? super V, ? extends E> extractorNew) Construct a ExtractorEventTransformer that transforms MapEvent values based on the specified extractors. Passing null indicates that the corresponding values should be skipped completely.- Parameters:
extractorOld
- extractor to extract the OldValue property(s)extractorNew
- extractor to extract the NewValue property(s)
-
-
Method Details
-
getOldValueExtractor
Return a ValueExtractor used to transfrom the event's OldValue.- Returns:
- an extractor from the OldValue
-
getNewValueExtractor
Return a ValueExtractor used to transfrom the event's NewValue.- Returns:
- an extractor from the NewValue
-
transform
Transform the specified MapEvent using the corresponding extractors.- Specified by:
transform
in interfaceMapEventTransformer<K,
V, E> - Parameters:
event
- MapEvent object to transform- Returns:
- a modified MapEvent object that contains extracted values
-
readExternal
Restore the contents of this object by loading the object's state from the passed DataInput object.- Specified by:
readExternal
in interfaceExternalizableLite
- 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
-
writeExternal
Save the contents of this object by storing the object's state into the passed DataOutput object.- Specified by:
writeExternal
in interfaceExternalizableLite
- Parameters:
out
- the DataOutput stream to write the state of this object to- Throws:
IOException
- if an I/O exception occurs
-
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
-
equals
Compare the ExtractorEventTransformer with another object to determine equality. -
hashCode
public int hashCode()Determine a hash value for the ExtractorEventTransformer object according to the generalObject.hashCode()
contract. -
toString
Provide a human-readable representation of this object.
-