public abstract class AccessEvaluator extends Evaluator<AccessClassification> implements IEvaluatorOverIntervals<AccessClassification,AccessQueryResult>
AccessQuery
.Modifier | Constructor and Description |
---|---|
protected |
AccessEvaluator(AccessEvaluator existingInstance,
CopyContext context)
Initializes a new instance as a copy of an existing instance.
|
protected |
AccessEvaluator(EvaluatorGroup group)
Initializes a new instance.
|
Modifier and Type | Method and Description |
---|---|
AccessQueryResult |
evaluate(JulianDate start,
JulianDate end)
Evaluates from the start date until the end date.
|
AccessQueryResult |
evaluate(JulianDate start,
JulianDate end,
ITrackCalculationProgress tracker)
Evaluates from the start date until the end date.
|
AccessQueryResult |
evaluate(TimeInterval consideredInterval)
Evaluates over a single considered time interval.
|
AccessQueryResult |
evaluate(TimeIntervalCollection consideredIntervals)
Evaluates over the supplied time intervals.
|
abstract AccessQueryResult |
evaluate(TimeIntervalCollection consideredIntervals,
ITrackCalculationProgress tracker)
Evaluates over the supplied time intervals.
|
AccessQueryResult |
evaluate(TimeInterval consideredInterval,
ITrackCalculationProgress tracker)
Evaluates over a single considered time interval.
|
abstract AccessClassification |
evaluateIgnoringAvailability(JulianDate date)
Evaluates the query at a specified time without determining whether the underlying
constraints and geometry are available.
|
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.
|
HierarchicalLogger |
getDebuggingLogger()
Gets the logger used to examine access query evaluations.
|
void |
setDebuggingLogger(HierarchicalLogger value)
Sets the logger used to examine access query evaluations.
|
clone, dispose, dispose, evaluate, evaluate, evaluate, evaluate, evaluate, getAvailabilityIntervals, getAvailabilityIntervals, getGroup, getIsThreadSafe, getIsTimeVarying, isAvailable, updateEvaluatorReferences
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
evaluate
getGroup, updateEvaluatorReferences
getAvailabilityIntervals, isAvailable
getIsThreadSafe
clone
close, dispose
protected AccessEvaluator(@Nonnull EvaluatorGroup group)
group
- The group that contains this evaluator.ArgumentNullException
- Thrown when group
is null
.protected AccessEvaluator(@Nonnull AccessEvaluator 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
.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<AccessClassification>
this
should be returned by this method.public final AccessQueryResult evaluate(@Nonnull JulianDate start, @Nonnull JulianDate end)
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. 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 IEvaluatorOverIntervals<AccessClassification,AccessQueryResult>
start
- The date to begin the evaluation.end
- The date to end the evaluation.public final AccessQueryResult evaluate(@Nonnull JulianDate start, @Nonnull JulianDate end, ITrackCalculationProgress tracker)
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. 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 IEvaluatorOverIntervals<AccessClassification,AccessQueryResult>
start
- The date to begin the evaluation.end
- The date to end the evaluation.tracker
- The tracker used for reporting progress of this evaluation.public final AccessQueryResult evaluate(TimeInterval consideredInterval)
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. 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 IEvaluatorOverIntervals<AccessClassification,AccessQueryResult>
consideredInterval
- The interval over which the evaluator is to analyze.public final AccessQueryResult evaluate(TimeInterval consideredInterval, ITrackCalculationProgress tracker)
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. 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 IEvaluatorOverIntervals<AccessClassification,AccessQueryResult>
consideredInterval
- The interval over which the evaluator is to analyze.tracker
- The tracker used for reporting progress of this evaluation.public final AccessQueryResult evaluate(TimeIntervalCollection consideredIntervals)
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. 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 IEvaluatorOverIntervals<AccessClassification,AccessQueryResult>
consideredIntervals
- The set of time intervals over which the evaluator is to analyze.public abstract AccessQueryResult evaluate(TimeIntervalCollection consideredIntervals, ITrackCalculationProgress tracker)
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. 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 IEvaluatorOverIntervals<AccessClassification,AccessQueryResult>
consideredIntervals
- The set of time intervals over which the evaluator is to analyze.tracker
- The tracker used for reporting progress of this evaluation.@Nonnull public abstract AccessClassification evaluateIgnoringAvailability(@Nonnull JulianDate date)
date
- The time at which to evaluate access.DataUnavailableException
- This will throw an exception if an evaluator involved
in the overall access evaluation does not have data available. The calling code is responsible
for ensuring that this is only called at times where all data is expected to be available.@Nullable public final HierarchicalLogger getDebuggingLogger()
public final void setDebuggingLogger(@Nullable HierarchicalLogger value)