Oracle® Fusion Middleware C++ API Reference for Oracle Coherence
12c (12.2.1.4.0)

E90870-01

CompositeUpdater Class Reference

#include <coherence/util/extractor/CompositeUpdater.hpp>

Inherits Object, ValueUpdater, and PortableObject.

List of all members.


Detailed Description

A ValueManipulator implementation based on an extractor-updater pair.

Author:
djl 2008.04.09
See also:
CompositeUpdater

Public Types

typedef spec::Handle Handle
 CompositeUpdater Handle definition.
typedef spec::View View
 CompositeUpdater View definition.
typedef spec::Holder Holder
 CompositeUpdater Holder definition.

Public Member Functions

virtual void update (Object::Handle hTarget, Object::Holder ohValue) const
 Update the state of the passed target object using the passed value.

Parameters:
hTarget the Object to update the state of
ohValue the new value to update the state with
Exceptions:
ClassCastException if this ValueUpdater is incompatible with the passed target object or the value and the implementation requires the passed object or the value to be of a certain type
Exception if this ValueUpdater encounters a checked exception in the course of updating the target object
IllegalArgumentException if this ValueUpdater cannot handle the passed target object or value for any other reason; an implementor should include a descriptive message

virtual void readExternal (PofReader::Handle hIn)
 
virtual void writeExternal (PofWriter::Handle hOut) const
 
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);
     }

Returns:
a string representation of this object

virtual
ValueExtractor::View 
getExtractor () const
 Retrieve the ValueExtractor part.
virtual
ValueUpdater::View 
getUpdater () const
 Retrieve the ValueUpdator part.

Protected Member Functions

 CompositeUpdater ()
 Construct an empty CompositeUpdater (necessary for the PortableObject interface).
 CompositeUpdater (String::View vsName)
 Construct a CompositeUpdater for a specified method name sequence.
 CompositeUpdater (ValueExtractor::View vExtractor, ValueUpdater::View vUpdater)
 Construct a CompositeUpdater based on the specified extractor and updater.

Protected Attributes

FinalView
< ValueExtractor
f_vExtractor
 The ValueExtractor part.
FinalView< ValueUpdaterf_vUpdater
 The ValueUpdaterr part.

Constructor & Destructor Documentation

CompositeUpdater ( String::View  vsName  )  [protected]

Construct a CompositeUpdater for a specified method name sequence.

For example: "getAddress. setZip" method name will indicate that the "getAddress()" method should be used to extract an Address object, which will then be used by the "setZip(String)" call.

Parameters:
vsName a dot-delimited sequence of N method names which results in a CompositeUpdater that is based on an chain of (N-1) ReflectionExtractor objects and a single ReflectionUpdater.

CompositeUpdater ( ValueExtractor::View  vExtractor,
ValueUpdater::View  vUpdater 
) [protected]

Construct a CompositeUpdater based on the specified extractor and updater.

Note: the extractor and updater here are not symmetrical in nature: the extractor is used to "drill-down" to the target object, while the updater will operate on that extracted object.

Parameters:
vExtractor the ValueExtractor
vUpdater the ValueUpdater


Member Function Documentation

virtual ValueExtractor::View getExtractor (  )  const [virtual]

Retrieve the ValueExtractor part.

Returns:
the ValueExtractor

virtual ValueUpdater::View getUpdater (  )  const [virtual]

Retrieve the ValueUpdator part.

Returns:
the ValueUpdater


The documentation for this class was generated from the following file:
Copyright © 2000, 2019, Oracle and/or its affiliates. All rights reserved.