public abstract class SignalEvaluator extends Evaluator<SignalCollection>
Modifier | Constructor and Description |
---|---|
protected |
SignalEvaluator(EvaluatorGroup group)
Initializes a new instance.
|
protected |
SignalEvaluator(SignalEvaluator existingInstance,
CopyContext context)
Initializes a new instance as a copy of an existing instance.
|
Modifier and Type | Method and Description |
---|---|
abstract SignalCollection |
evaluate(JulianDate date)
Evaluates the function.
|
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.
|
clone, dispose, dispose, evaluate, evaluate, evaluate, evaluate, getAvailabilityIntervals, getAvailabilityIntervals, getGroup, getIsThreadSafe, getIsTimeVarying, isAvailable, updateEvaluatorReferences
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
close
protected SignalEvaluator(@Nonnull EvaluatorGroup group)
group
- The group that contains this evaluator.ArgumentNullException
- Thrown when group
is null
.protected SignalEvaluator(@Nonnull SignalEvaluator existingInstance, @Nonnull CopyContext context)
See ICloneWithContext.clone(CopyContext)
for more information about how to implement this constructor
in a derived class.
existingInstance
- The existing instance to copy.context
- A CopyContext
that controls the depth of the copy.ArgumentNullException
- Thrown when existingInstance
or context
is null
.@Nonnull public abstract SignalCollection evaluate(@Nonnull JulianDate date)
For information about the specific function evaluated by this evaluator, see the documentation for the method that was used to create this evaluator.
Once created, an evaluator will ignore changes made to the object(s) from which it was created.
In other words, this method will always return the same result for a given JulianDate
regardless of changes made to other objects in the system. You should create a new evaluator
after making changes to definitional objects in order for those changes to be reflected in the results.
evaluate
in interface IEvaluator1<SignalCollection>
evaluate
in class Evaluator<SignalCollection>
date
- The value with which to evaluate the function.public 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);
}
getCachingWrapper
in interface IEvaluator
getCachingWrapper
in class Evaluator<SignalCollection>
this
should be returned by this method.