# Interface FunctionRegister

public interface FunctionRegister
A factory of `org​.opengis​.filter` functions identified by their names. Each factory can provide an arbitrary number of functions, enumerated by `getNames()`. The `DefaultFilterFactory​.function(String, Expression[])` method delegates to this interface for creating the function implementation for a given name.

Since:
  1.5
See Also:
  - `DefaultFilterFactory​.function(String, Expression[])`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `<R> Expression<R,?>`
  `create(String name, Expression<R,?>[] parameters)`
  Creates a new function of the given name with the given parameters.
  `String`
  `getAuthority()`
  Returns the name of the standard or authority defining the functions.
  `Set<String>`
  `getNames()`
  Returns the names of all functions that this factory can create.

- ## Method Details

  - ### getAuthority

    String getAuthority()
    Returns the name of the standard or authority defining the functions.
    Returns:
      provider of function definitions.

  - ### getNames

    Set<String> getNames()
    Returns the names of all functions that this factory can create.
    Returns:
      set of supported function names.

  - ### create

    <R> Expression<R,?> create(String name, Expression<R,?>[] parameters) throws IllegalArgumentException
    Creates a new function of the given name with the given parameters.
    Type Parameters:
      `R` - the type of resources (e.g. `Feature`) used as inputs.
    Parameters:
      `name` - case-sensitive name of the function to create as an expression.
      `parameters` - function parameters.
    Returns:
      function for the given name and parameters.
    Throws:
      `IllegalArgumentException` - if function name is unknown or some parameters are illegal.