org.geotools.filter.function
Class CategorizeFunction

Object
  extended by CategorizeFunction
All Implemented Interfaces:
Expression, Function

public class CategorizeFunction
extends Object
implements Function

Implementation of "Categorize" as a normal function.

This implementation is compatible with the Function interface; the parameter list can be used to set the threshold values etc...

This function expects:

  1. PropertyName; use "Rasterdata" to indicate this is a color map
  2. Literal: lookup value
  3. Literal: threshold 1
  4. Literal: value 1
  5. Literal: threshold 2
  6. Literal: value 2
  7. Literal: (Optional) succeeding or preceding
In reality any expression will do.

Author:
Jody Garnett, Johann Sorel (Geomatys)

Field Summary
static FunctionName NAME
          Make the instance of FunctionName available in a consistent spot.
static String PRECEDING
          Use as a literal value to indicate behaviour of threshold boundary
static String RASTER_DATA
          Use as a PropertyName when defining a color map.
static String SUCCEEDING
          Use as a literal value to indicate behaviour of threshold boundary
 
Fields inherited from interface Expression
NIL
 
Constructor Summary
CategorizeFunction()
           
CategorizeFunction(List<Expression> parameters, Literal fallback)
           
 
Method Summary
 Object accept(ExpressionVisitor visitor, Object extraData)
          Accepts a visitor.
 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.
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SUCCEEDING

public static final String SUCCEEDING
Use as a literal value to indicate behaviour of threshold boundary

See Also:
Constant Field Values

PRECEDING

public static final String PRECEDING
Use as a literal value to indicate behaviour of threshold boundary

See Also:
Constant Field Values

RASTER_DATA

public static final String RASTER_DATA
Use as a PropertyName when defining a color map. The "Raterdata" is expected to apply to only a single band; if multiple bands are provided it is probably a mistake; but we will use the maximum value (since we are working against a threshold).

See Also:
Constant Field Values

NAME

public static final FunctionName NAME
Make the instance of FunctionName available in a consistent spot.

Constructor Detail

CategorizeFunction

public CategorizeFunction()

CategorizeFunction

public CategorizeFunction(List<Expression> parameters,
                          Literal fallback)
Method Detail

getName

public String getName()
Description copied from interface: Function
Returns the name of the function to be called. For example, this might be "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.

Specified by:
getName in interface Function

getFunctionName

public FunctionName getFunctionName()
Description copied from interface: Function
Access to the FunctionName description as used in a FilterCapabilities document.

Specified by:
getFunctionName in interface Function
Returns:
FunctionName description, if available.

getParameters

public List<Expression> getParameters()
Description copied from interface: Function
Returns the list subexpressions that will be evaluated to provide the parameters to the function.

Specified by:
getParameters in interface Function

accept

public Object accept(ExpressionVisitor visitor,
                     Object extraData)
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 interface Expression

evaluate

public Object evaluate(Object object)
Description copied from interface: Expression
Evaluates the given expression based on the content of the given object.

Specified by:
evaluate in interface Expression

evaluate

public <T> T evaluate(Object object,
                      Class<T> context)
Description copied from interface: Expression
Evaluates the given expressoin based on the content of the given object and the context type.

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.

Specified by:
evaluate in interface Expression
Type Parameters:
T - The type of the returned object.
Parameters:
object - The object to evaluate the expression against.
context - The type of the resulting value of the expression.
Returns:
Evaluates the given expression based on the content of the given object an an instance of context.

getFallbackValue

public Literal 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 interface Function
Returns:
Optional literal to use if an implementation for this function is not available.


Copyright © 1996-2014 Geotools. All Rights Reserved.