Module jakarta.data

Interface FunctionExpression<T,V>

Type Parameters:
T - entity type.
V - result type of the function.
All Superinterfaces:
Expression<T,V>
All Known Subinterfaces:
NumericFunctionExpression<T,N>, TextFunctionExpression<T>

public interface FunctionExpression<T,V> extends Expression<T,V>

An expression that represents application of a function to zero or more expressions supplied as arguments().

Wherever reasonable, a subtype that more preciesly fits the function result type, such as NumericFunctionExpression or TextFunctionExpression, should be used instead.

Since:
1.1
  • Method Details

    • name

      String name()

      The name of the function.

      Valid function names are defined by constants in a subtype of this class or in vendor documentation. Function names should aim to match the names of equivalent functions in the query language wherever possible.

      Returns:
      the name of the function.
    • arguments

      List<? extends Expression<? super T,?>> arguments()

      An ordered list of inputs to the function.

      Valid function names and behavior are documented by the function name constants (such as TextFunctionExpression.CONCAT) in subtypes of this class or in vendor documentation. The respective documentation is also responsible for defining the function arguments, including the meaning and data type of each argument and the order in which arguments must be supplied. By convention, when a method of an Expression subtype represents invocation of a function on a target expression, such as TextExpression.left(int), the first element of the argument list should be the target expression, and subsequent elements should be the method arguments, in the same order, if present.

      Returns:
      a list of expressions that represent the arguments to the function.