Class ProcessFunction

  • All Implemented Interfaces:
    Expression, Function

    public class ProcessFunction
    extends Object
    implements Function
    A wrapper allowing a Process with a single output to be called as a Function. Since Function parameters are positional and Process parameters are named, the following strategy is used to allow specifying named Process parameters as function inputs. All inputs to the function must evaluate to Map<String, Object>, with a single entry where the key is the name of a process parameter and the value is the argument value
    Author:
    Andrea Aime - GeoSolutions
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Object accept​(ExpressionVisitor visitor, Object extraData)
      Accepts a visitor.
      boolean equals​(Object obj)  
      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.
      protected Map<String,​Object> evaluateInputs​(Object object)
      Evaluates the process input expressions.
      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.
      Name getProcessName()  
      int hashCode()  
      • Methods inherited from class Object

        clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

    • Method Detail

      • 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.
      • 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
      • getProcessName

        public Name getProcessName()
      • 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 <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.
      • 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
        Returns:
        computed value
      • evaluateInputs

        protected Map<String,​Object> evaluateInputs​(Object object)
        Evaluates the process input expressions. The object provides the context for evaluating the input expressions, and may be null if no context is available (for instance, when being called to evaluation the inputs for the RenderingProcessFunction inversion methods).
        Parameters:
        object - the object to evaluate the input expressions against.
        Returns:
        the map of inputs
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • equals

        public boolean equals​(Object obj)
        Overrides:
        equals in class Object