public class InterpolateFunction extends Object implements Function
The first parameter should be either the name of a numeric feature property or, if this function is being used as a raster colormap, the String "RasterData" (case-insensitive).
Following this there should be a sequence of interpolation points, each of which is described by two parameters: the first a datum and the second a return value. In the SE speicification these parameters are expected to be Literals but in this implementation more general Expressions are also supported.
Two optional parameters can be provided following the interpolation points: A "method" parameter which can take the values "numeric" or "color" and a "mode" parameter which can take the values "linear", "cosine" or "cubic" (Note: it would make more sense if these terms were reversed but we are adhering to their use as published in the OGC specification).
Number of points and interpolation modes
Exception
is thrown.Modifier and Type | Class and Description |
---|---|
protected class |
InterpolateFunction.ConstantColorPoint |
protected class |
InterpolateFunction.ConstantNumericPoint |
protected class |
InterpolateFunction.ConstantPoint |
protected class |
InterpolateFunction.DynamicPoint |
protected class |
InterpolateFunction.InterpPoint |
Modifier and Type | Field and Description |
---|---|
protected List<InterpolateFunction.InterpPoint> |
interpPoints |
static String |
METHOD_COLOR
Use as a literal value to indicate interpolation method
|
static String |
METHOD_NUMERIC
Use as a literal value to indicate interpolation method
|
static String |
MODE_COSINE
Use as a literal value to indicate interpolation mode
|
static String |
MODE_CUBIC
Use as a literal value to indicate interpolation mode
|
static String |
MODE_LINEAR
Use as a literal value to indicate interpolation mode
|
static FunctionName |
NAME
Make the instance of FunctionName available in a consistent spot.
|
static String |
RASTER_DATA
Use as a PropertyName when defining a color map.
|
NIL
Constructor and Description |
---|
InterpolateFunction() |
InterpolateFunction(List<Expression> parameters,
Literal fallback) |
Modifier and Type | Method and Description |
---|---|
Object |
accept(ExpressionVisitor visitor,
Object extraData)
Accepts a visitor.
|
boolean |
equals(Object o) |
Object |
evaluate(Object object)
Evaluates the given expression based on the content of the given object.
|
<T> T |
evaluate(Object object,
Class<T> context)
Evaluates the given expressoin based on the content of the given object and the context type.
|
Literal |
getFallbackValue()
The value of the fallbackValue attribute is used as a default value, if the SE implementation
does not support the function.
|
FunctionName |
getFunctionName()
Access to the FunctionName description as used in a FilterCapabilities document.
|
String |
getName()
Returns the name of the function to be called.
|
List<Expression> |
getParameters()
Returns the list subexpressions that will be evaluated to provide the parameters to the
function.
|
int |
hashCode() |
String |
toString()
Creates a String representation of this Function with the function name and the arguments.
|
public static final String MODE_LINEAR
public static final String MODE_COSINE
public static final String MODE_CUBIC
public static final String METHOD_NUMERIC
public static final String METHOD_COLOR
protected volatile List<InterpolateFunction.InterpPoint> interpPoints
public static final String RASTER_DATA
public static final FunctionName NAME
public InterpolateFunction()
public InterpolateFunction(List<Expression> parameters, Literal fallback)
public String getName()
Function
cos
" or
"atan2
".
You can use this name to look up the number of required parameters in a FilterCapabilities data structure. For the specific meaning of the required parameters you will need to consult the documentation.
public FunctionName getFunctionName()
Function
getFunctionName
in interface Function
public List<Expression> getParameters()
Function
getParameters
in interface Function
public Object accept(ExpressionVisitor visitor, Object extraData)
Expression
return visitor.visit(this, extraData);
accept
in interface Expression
public Object evaluate(Object object)
Expression
evaluate
in interface Expression
public <T> T evaluate(Object object, Class<T> context)
Expression
The context
parameter is used to control the type of the result of the expression.
A particular expression may not be able to evaluate to an instance of context
.
Therefore to be safe calling code should do a null check on the return value of this method,
and call Expression.evaluate(Object)
if neccessary. Example:
Object input = ...; String result = expression.evaluate( input, String.class ); if ( result == null ) { result = expression.evalute( input ).toString(); } ...
Implementations that can not return a result as an instance of context
should
return null
.
evaluate
in interface Expression
T
- The type of the returned object.object
- The object to evaluate the expression against.context
- The type of the resulting value of the expression.context
.public Literal getFallbackValue()
Function
getFallbackValue
in interface Function
public String toString()
Copyright © 1996–2023 Geotools. All rights reserved.