#include <coherence/util/transformer/ExtractorEventTransformer.hpp>
Inherits Object, PortableObject, and MapEventTransformer.
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::View vFilter = ValueChangeEventFilter::create("getAccountBalance"); ValueExtractor::View vExtractor = MultiExtractor::create(MultiExtractor::createExtractors( "getLastTransactionTime,getAccountBalance")); MapEventTransformer::Handle hTransformer = ExtractorEventTransformer::create(NULL, vExtractor);
cache->addMapListener(listener, MapEventTransformerFilter::create(vFilter, hTransformer), false);
Public Types | ||||
typedef spec::Handle | Handle | |||
ExtractorEventTransformer Handle definition. | ||||
typedef spec::View | View | |||
ExtractorEventTransformer View definition. | ||||
typedef spec::Holder | Holder | |||
ExtractorEventTransformer Holder definition. | ||||
Public Member Functions | ||||
virtual MapEvent::Handle | transform (MapEvent::Handle hEvent) const | |||
Transform the specified MapEvent. The values contained by the returned MapEvent object will be the ones given (sent) to the corresponding listener.
| ||||
virtual void | readExternal (PofReader::Handle hIn) | |||
virtual void | writeExternal (PofWriter::Handle hOut) const | |||
virtual bool | equals (Object::View v) const | |||
virtual size32_t | hashCode () const | |||
Return a hash code value for the Object. This method is supported for the benefit of hash-based containers.
The general contract of
The default implementation is identity based.
| ||||
virtual TypedHandle < const String > | toString () const | |||
Output a human-readable description of this Object to the given stream. Note that when overriding this method the return type must be TypedHandle<const String> rather then String::View. These two types are assignment compatible but not equivalent and declaring the override with String::View will not be a compatible override. coherence::lang::operator<<(std::ostream, Object::View) is defined and will call into the toString method, to output Objects. If a managed String object is desired, the COH_TO_STRING macro can be used to build up a String from streamable contents and is generally how toString() will be implemented.
Object::View vKey = ... Object::View vValue = ... std::cout << vKey << " = " << vValue << std::endl; String::View vs = COH_TO_STRING(vKey << " = " << vValue); The COH_TO_STRING macro is also the most common way to implement the toString method. For example:
virtual TypedHandle<const String> Person::toString() const { return COH_TO_STRING("Name: " << f_sName << " SSN: " << f_nSSN); }
| ||||
virtual ValueExtractor::View | getOldValueExtractor () const | |||
Return a ValueExtractor used to transfrom the event's OldValue. | ||||
virtual ValueExtractor::View | getNewValueExtractor () const | |||
Return a ValueExtractor used to transfrom the event's NewValue. | ||||
Protected Member Functions | ||||
ExtractorEventTransformer () | ||||
Default constructor (necessary for the PortableObject interface). | ||||
ExtractorEventTransformer (ValueExtractor::View vExtractor) | ||||
Construct a ExtractorEventTransformer that transforms MapEvent values based on the specified extractor. | ||||
ExtractorEventTransformer (ValueExtractor::View vExtractorOld, ValueExtractor::View vExtractorNew) | ||||
Construct a ExtractorEventTransformer that transforms MapEvent values based on the specified extractors. |
ExtractorEventTransformer | ( | ValueExtractor::View | vExtractor | ) | [protected] |
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.
vExtractor | ValueExtractor to extract MapEvent values |
ExtractorEventTransformer | ( | ValueExtractor::View | vExtractorOld, | |
ValueExtractor::View | vExtractorNew | |||
) | [protected] |
Construct a ExtractorEventTransformer that transforms MapEvent values based on the specified extractors.
Passing null indicates that the corresponding values should be skipped completely.
virtual ValueExtractor::View getOldValueExtractor | ( | ) | const [virtual] |
Return a ValueExtractor used to transfrom the event's OldValue.
virtual ValueExtractor::View getNewValueExtractor | ( | ) | const [virtual] |
Return a ValueExtractor used to transfrom the event's NewValue.