public interface IEvaluator extends IAvailability, IThreadAware, IDisposable
| Modifier and Type | Method and Description | 
|---|---|
IEvaluator | 
getCachingWrapper()
Gets a version of this evaluator that caches the previously computed value so that if it is evaluated
    twice at the same date the computation is done only once. 
 | 
EvaluatorGroup | 
getGroup()
Gets the group that contains this evaluator. 
 | 
void | 
updateEvaluatorReferences(CopyContext context)
Updates the evaluator references held by this object using the reference-to-reference
    mapping in the specified  
CopyContext. | 
getAvailabilityIntervals, isAvailablegetIsThreadSafecloneclose, disposevoid updateEvaluatorReferences(@Nonnull CopyContext context)
CopyContext.
    
    
    
    
    The following example shows how to implement this method for an evaluator that contains a nested evaluator:
@Override
public final void updateEvaluatorReferences(CopyContext context) {
    m_nestedEvaluator = context.updateReference(m_nestedEvaluator);
}
 
    This method is called by EvaluatorGroup and usually does not need to be
    called directly by users.  EvaluatorGroup uses this method to replace references
    to shared evaluators with references to caching versions of the evaluators.
    
    To implement this method, call CopyContext.updateReference(T) on each evaluator reference
    held by your evaluator and assign the return value back to the field.
    
context - The context that specifies the reference mapping.@Nonnull EvaluatorGroup getGroup()
@Nonnull IEvaluator getCachingWrapper()
    This method is called by EvaluatorGroup to create a caching version of an evaluator
    that is shared between multiple computations.
    
    To implement this method in your own evaluator, construct and return a caching version of the evaluator's base class.
    For example, if your evaluator implements IEvaluator1 directly, return an instance of
    CachingEvaluator.  In many cases, such as when implementing a PointEvaluator
    this method does not need to be overridden because the default implementation returns an appropriate
    caching wrapper already.  If you do not want the last value computed by your evaluator to ever be cached, or
    if your evaluator does its own caching internally, this method can return this.
    
    Shows an example implementation in an evaluator that implements IEvaluator1
    directly, where T is double.
    
@Override
public IEvaluator getCachingWrapper() {
    return new CachingEvaluator<Double>(this);
}
    this should be returned by this method.