Interface FeatureCalculationInput<T extends FeatureInput>
- Type Parameters:
T- underlying feature-input type.
public interface FeatureCalculationInput<T extends FeatureInput>
Gives a
FeatureInput the necessary context for feature-calculation, including associating
it with a cache.
This is the recommended method for calculating the value of a Feature as it allows
sensible caching / memoization to occur of subcomponents of the feature's computation (known as
CalculationParts.
- Author:
- Owen Feehan
-
Method Summary
Modifier and Type Method Description FeatureSymbolCalculator<T>bySymbol()Calculates a feature if only an symbol (ID/name) is known, which refers to another feature.doublecalculate(Feature<T> feature)Calculates the result of a feature using this input.ResultsVectorcalculate(FeatureList<T> features)Calculates the results of several features using this input.<S> Scalculate(ResolvedPart<S,T> calculation)Calculates a resolved Feature-calculation.<S> Scalculate(CalculationPart<S,T> calculation)Calculates a feature-calculation after resolving it against the main cache.CalculateForChild<T>forChild()Performs calculations not on the main cache, but on a child cache.Tget()The underlying feature-input.FeatureCalculationCache<T>getCache()Get the associatedFeatureCalculationCache.CalculationPartResolver<T>resolver()A resolver for calculations.
-
Method Details
-
get
T get()The underlying feature-input.- Returns:
- the feature-input.
-
calculate
Calculates the result of a feature using this input.- Parameters:
feature- the feature to calculate with.- Returns:
- the result of the calculation.
- Throws:
FeatureCalculationException- if a feature cannot be successfully calculated.
-
calculate
Calculates the results of several features using this input.- Parameters:
features- features to calculate with.- Returns:
- the results of each feature's calculation respectively.
- Throws:
NamedFeatureCalculateException- if any feature cannot be successfully calculated.
-
calculate
Calculates a feature-calculation after resolving it against the main cache.- Type Parameters:
S- return-type of the calculation.- Parameters:
calculation- the feature-calculation to resolve.- Returns:
- the result of the calculation.
- Throws:
FeatureCalculationException- if a feature cannot be successfully calculated.
-
calculate
Calculates a resolved Feature-calculation.- Type Parameters:
S- return-type of the calculation.- Parameters:
calculation- the feature-calculation to resolve.- Returns:
- the result of the calculation.
- Throws:
FeatureCalculationException- if a feature cannot be successfully calculated.
-
resolver
CalculationPartResolver<T> resolver()A resolver for calculations.- Returns:
- the resolver.
-
forChild
CalculateForChild<T> forChild()Performs calculations not on the main cache, but on a child cache.- Returns:
- the calculator.
-
bySymbol
FeatureSymbolCalculator<T> bySymbol()Calculates a feature if only an symbol (ID/name) is known, which refers to another feature.- Returns:
- the calculator.
-
getCache
FeatureCalculationCache<T> getCache()Get the associatedFeatureCalculationCache.- Returns:
- the associated cache.
-