Package org.geotools.filter
Class FunctionImpl
Object
ExpressionAbstract
FunctionImpl
- All Implemented Interfaces:
Expression
,Function
- Direct Known Subclasses:
AbstractHSLFunction
,BoundedByFunction
,Collection_NearestFunction
,ConcatenateFunction
,ConstrastFunction
,CSSFunction
,DefaultIfNullFunction
,ExponentialFunction
,FontAlternativesFunction
,FootprintsTransformation
,GrayscaleFunction
,HSLFunction
,InternalVolatileFunction
,MapBoxFontBaseNameFunction
,MapBoxFontStyleFunction
,MapBoxFontWeightFunction
,MBExpression
,MixFunction
,ShadeFunction
,SpinFunction
,StringInFunction
,StringTransformFunction
,TintFunction
Default implementation of a Function; you may extend this class to implement specific functionality.
- Author:
- Cory Horner, Refractions Research
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected FunctionName
FunctionName description for FilterCapabilities, may be provided by subclass in constructor, or will be lazily created based on name and number of arguments.Fields inherited from interface Expression
NIL
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaccept
(ExpressionVisitor visitor, Object extraData) Accepts a visitor.protected LinkedHashMap<String,
Object> dispatchArguments
(Object obj) Gathers up and groups the parameters to the function based on the declared parameters.boolean
Default implementation simply returns the fallbackValue.protected static FunctionName
functionName
(String name, String ret, String... args) Convenience method for creating a function name from a set of strings describing the return and argument parameters of the function.The value of the fallbackValue attribute is used as a default value, if the SE implementation does not support the function.Access to the FunctionName description as used in a FilterCapabilities document.getName()
Gets the name of this function.Returns the function parameters.protected Object
getParameterValue
(Object object, int argumentIndex) Evaluates a specific argument against the context, checking for required values and proper conversion.protected Object
getParameterValue
(Object object, int argumentIndex, Object defaultValue) Evaluates a specific argument against the context, checking for required values and proper conversion.int
hashCode()
void
setFallbackValue
(Literal fallbackValue) void
Sets the name of the function.void
setParameters
(List<Expression> params) Sets the function parameters.toString()
Creates a String representation of this Function with the function name and the arguments.Methods inherited from class ExpressionAbstract
evaluate
Methods inherited from interface Expression
evaluate
-
Field Details
-
functionName
FunctionName description for FilterCapabilities, may be provided by subclass in constructor, or will be lazily created based on name and number of arguments.
-
-
Constructor Details
-
FunctionImpl
public FunctionImpl()
-
-
Method Details
-
getName
Gets the name of this function. -
getFunctionName
Description copied from interface:Function
Access to the FunctionName description as used in a FilterCapabilities document.- Specified by:
getFunctionName
in interfaceFunction
- Returns:
- FunctionName description, if available.
-
setName
Sets the name of the function. -
getParameters
Returns the function parameters.- Specified by:
getParameters
in interfaceFunction
-
evaluate
Default implementation simply returns the fallbackValue.Please override this method to produce a value based on the provided arguments.
- Specified by:
evaluate
in interfaceExpression
- Overrides:
evaluate
in classExpressionAbstract
- Parameters:
object
- Object being evaluated; often a Feature- Returns:
- value for the provided object
-
setParameters
Sets the function parameters. -
setFallbackValue
-
getFallbackValue
Description copied from interface:Function
The value of the fallbackValue attribute is used as a default value, if the SE implementation does not support the function. If the implementation supports the function, then the result value is determined by executing the function.- Specified by:
getFallbackValue
in interfaceFunction
- Returns:
- Optional literal to use if an implementation for this function is not available.
-
accept
Description copied from interface:Expression
Accepts a visitor. Subclasses must implement with a method whose content is the following:return visitor.visit(this, extraData);
- Specified by:
accept
in interfaceExpression
-
toString
Creates a String representation of this Function with the function name and the arguments. The String created should be good for most subclasses -
getParameterValue
Evaluates a specific argument against the context, checking for required values and proper conversion. -
getParameterValue
Evaluates a specific argument against the context, checking for required values and proper conversion. This version accepts a default value -
dispatchArguments
Gathers up and groups the parameters to the function based on the declared parameters.This method calls
#validateArguments()
which enforces java style argument conventions for multi valued parameters. Basically enforcing that only the last argument in a function can be variable. -
functionName
Convenience method for creating a function name from a set of strings describing the return and argument parameters of the function.The value of ret and each value of args is a string of the following structure:
name[:type[:min,max]]
Where:- name is the name of the parameter
- type is type (class name) of the parameter
- min is the minimum number of occurrences
- max is the maximum number of occurrences
- foo
- foo:String
- foo:java.lang.Integer
- foo:Polygon:1,1
- foo:Polygon:1,
- foo:Polygon:,
- java.lang
- org.locationtech.jts.geom
- Parameters:
name
- The name of the functionret
- The parameter specification of the return of the functionargs
- The argument specifications of the function arguments
-
hashCode
public int hashCode() -
equals
-