All Known Implementing Classes:
AwsPartition.Definition, BooleanEquals.Definition, Coalesce.Definition, GetAttr.Definition, IsSet.Definition, IsValidHostLabel.Definition, IsVirtualHostableS3Bucket.Definition, Not.Definition, ParseArn.Definition, ParseUrl.Definition, Split.Definition, StringEquals.Definition, Substring.Definition, UriEncode.Definition

public interface FunctionDefinition
An abstract definition of a rule-engine function.
  • Method Details

    • getId

      String getId()
      The ID of this function.
      Returns:
      The ID string
    • getArguments

      List<Type> getArguments()
      The arguments to this function.
      Returns:
      The function arguments
    • getVariadicArguments

      default Optional<Type> getVariadicArguments()
      Gets the type of variadic arguments if this function accepts them.

      When present, the function accepts any number of additional arguments of this type after the fixed arguments from getArguments().

      Returns:
      the variadic argument type, or empty if not variadic
    • getReturnType

      Type getReturnType()
      The return type of this function definition.
      Returns:
      The function return type
    • evaluate

      Value evaluate(List<Value> arguments)
      Evaluate the arguments to a given function to compute a result.
      Returns:
      The resulting value
    • createFunction

      LibraryFunction createFunction(FunctionNode functionNode)
      Creates a LibraryFunction implementation from the given FunctionNode.
      Parameters:
      functionNode - the function node to deserialize.
      Returns:
      the created LibraryFunction implementation.