Class FunctionFinder


  • public class FunctionFinder
    extends Object
    Isolate function lookup code from Factory implementation(s).

    This is done to look for two things:

    • org.geotools.filter.Function
    • org.geotools.api.filter.expression.Function
    This is done as a proper utility class that accepts Hints.
    Author:
    Jody Garnett
    • Constructor Detail

      • FunctionFinder

        public FunctionFinder​(Hints hints)
    • Method Detail

      • getAllFunctionDescriptions

        public List<FunctionName> getAllFunctionDescriptions()
        Return a List of FunctionName's describing the functions currently available.
        Returns:
        List describing available functions
      • findFunctionDescription

        public FunctionName findFunctionDescription​(String name)
        Lookup the FunctionName description.
        Parameters:
        name - Function name; this will need to be an exact match
        Returns:
        FunctioName description, or null if function is not available
      • findFunctionDescription

        public FunctionName findFunctionDescription​(Name name)
        Lookup the FunctionName description.
        Parameters:
        name - Function name; this will need to be an exact match
        Returns:
        FunctioName description, or null if function is not available
      • findFunction

        public Function findFunction​(String name)
      • findFunction

        public Function findFunction​(Name name)
      • findFunction

        public Function findFunction​(String name,
                                     List<Expression> parameters)
        Look up a function for the provided name.
        Parameters:
        name - Function name; this will need to be an exact match
        parameters - Set of parameters required
        Returns:
        Generated function
        Throws:
        a - RuntimeException if an implementation for name could not be found
      • findFunction

        public Function findFunction​(Name name,
                                     List<Expression> parameters)
        Look up a function for the provided name.
        Parameters:
        name - Function name; this will need to be an exact match
        parameters - Set of parameters required
        Returns:
        Generated function
        Throws:
        a - RuntimeException if an implementation for name could not be found
      • findFunction

        public Function findFunction​(String name,
                                     List<Expression> parameters,
                                     Literal fallback)
        Look up a function for the provided name, may return a FallbackFunction if an implementation could not be found.

        You can create a function to represent an SQL function or a function hosted on an external service; the fallback value will be used if you evulate by a Java implementation on the classpath.

        Parameters:
        name - Function name; this will need to be an exact match
        parameters - Set of Expressions to use as function parameters
        fallback - Literal to use if an implementation could not be found
        Returns:
        Function for the provided name, may be a FallbackFunction if an implementation could not be found
      • findFunction

        public Function findFunction​(Name name,
                                     List<Expression> parameters,
                                     Literal fallback)
        Look up a function for the provided name, may return a FallbackFunction if an implementation could not be found.

        You can create a function to represent an SQL function or a function hosted on an external service; the fallback value will be used if you evulate by a Java implementation on the classpath.

        Parameters:
        name - Function name; this will need to be an exact match
        parameters - Set of Expressions to use as function parameters
        fallback - Literal to use if an implementation could not be found
        Returns:
        Function for the provided name, may be a FallbackFunction if an implementation could not be found