#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.