All Implemented Interfaces:
FromSourceLocation, ToNode, TypeCheck, ToCondition, ToExpression

public final class Coalesce extends LibraryFunction
A coalesce function that returns the first non-empty value.

This variadic function requires two or more arguments. At runtime, returns the first argument that contains a non-EmptyValue, otherwise returns the result of the last argument.

Type checking rules:

  • coalesce(T, T, T) => T (same types)
  • coalesce(Optional<T>, T, T) => T (any non-optional makes result non-optional)
  • coalesce(Optional<T>, Optional<T>, Optional<T>) => Optional<T> (all optional)

Available since: rules engine 1.1.