Class Expressions

java.lang.Object
org.apache.calcite.linq4j.tree.Expressions

public abstract class Expressions extends Object
Utility methods for expressions, including a lot of factory methods.
  • Method Details

    • toString

      public static String toString(List<? extends Node> expressions, String sep, boolean generics)
      Converts a list of expressions to Java source code, optionally emitting extra type information in generics.
    • toString

      public static String toString(Node expression)
      Converts an expression to Java source code.
    • add

      public static BinaryExpression add(Expression left, Expression right)
      Creates a BinaryExpression that represents an arithmetic addition operation that does not have overflow checking.
    • add

      public static BinaryExpression add(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents an arithmetic addition operation that does not have overflow checking. The implementing method can be specified.
    • addAssign

      public static BinaryExpression addAssign(Expression left, Expression right)
      Creates a BinaryExpression that represents an addition assignment operation that does not have overflow checking.
    • addAssign

      public static BinaryExpression addAssign(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents an addition assignment operation that does not have overflow checking.
    • addAssign

      public static BinaryExpression addAssign(Expression left, Expression right, Method method, LambdaExpression lambdaLeft, LambdaExpression lambdaRight)
      Creates a BinaryExpression that represents an addition assignment operation that does not have overflow checking.
    • addAssignChecked

      public static BinaryExpression addAssignChecked(Expression left, Expression right)
      Creates a BinaryExpression that represents an addition assignment operation that has overflow checking.
    • addAssignChecked

      public static BinaryExpression addAssignChecked(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents an addition assignment operation that has overflow checking.
    • addAssignChecked

      public static BinaryExpression addAssignChecked(Expression left, Expression right, Method method, LambdaExpression lambdaExpression)
      Creates a BinaryExpression that represents an addition assignment operation that has overflow checking.
    • addChecked

      public static BinaryExpression addChecked(Expression left, Expression right)
      Creates a BinaryExpression that represents an arithmetic addition operation that has overflow checking.
    • addChecked

      public static BinaryExpression addChecked(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents an arithmetic addition operation that has overflow checking. The implementing method can be specified.
    • and

      public static BinaryExpression and(Expression left, Expression right)
      Creates a BinaryExpression that represents a bitwise AND operation.
    • and

      public static BinaryExpression and(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents a bitwise AND operation. The implementing method can be specified.
    • andAlso

      public static BinaryExpression andAlso(Expression left, Expression right)
      Creates a BinaryExpression that represents a conditional AND operation that evaluates the second operand only if the first operand evaluates to true.
    • andAlso

      public static BinaryExpression andAlso(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents a conditional AND operation that evaluates the second operand only if the first operand is resolved to true. The implementing method can be specified.
    • andAssign

      public static BinaryExpression andAssign(Expression left, Expression right)
      Creates a BinaryExpression that represents a bitwise AND assignment operation.
    • andAssign

      public static BinaryExpression andAssign(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents a bitwise AND assignment operation.
    • andAssign

      public static BinaryExpression andAssign(Expression left, Expression right, Method method, LambdaExpression lambdaExpression)
      Creates a BinaryExpression that represents a bitwise AND assignment operation.
    • arrayIndex

      public static IndexExpression arrayIndex(Expression array, Expression indexExpression)
      Creates an expression that represents applying an array index operator to an array of rank one.
    • arrayLength

      public static UnaryExpression arrayLength(Expression array)
      Creates a UnaryExpression that represents an expression for obtaining the length of a one-dimensional array.
    • assign

      public static BinaryExpression assign(Expression left, Expression right)
      Creates a BinaryExpression that represents an assignment operation.
    • bind

      public static MemberAssignment bind(Member member, Expression right)
      Creates a MemberAssignment that represents the initialization of a field or property.
    • bind

      public static MemberAssignment bind(Method method, Expression expression)
      Creates a MemberAssignment that represents the initialization of a member by using a property accessor method.
    • block

      public static BlockStatement block(Iterable<? extends Statement> statements)
      Creates a BlockExpression that contains the given statements.
    • block

      public static BlockStatement block(Statement... statements)
      Creates a BlockExpression that contains the given statements, using varargs.
    • block

      public static BlockStatement block(@Nullable Type type, Iterable<? extends Statement> expressions)
      Creates a BlockExpression that contains the given expressions, has no variables and has specific result type.
    • block

      public static BlockStatement block(@Nullable Type type, Statement... statements)
      Creates a BlockExpression that contains the given statements and has a specific result type, using varargs.
    • break_

      public static GotoStatement break_(@Nullable LabelTarget labelTarget)
      Creates a GotoExpression representing a break statement.
    • break_

      public static GotoStatement break_(@Nullable LabelTarget labelTarget, Expression expression)
      Creates a GotoExpression representing a break statement. The value passed to the label upon jumping can be specified.
    • break_

      public static GotoStatement break_(LabelTarget labelTarget, Type type)
      Creates a GotoExpression representing a break statement with the specified type.
    • break_

      public static GotoStatement break_(LabelTarget labelTarget, Expression expression, Type type)
      Creates a GotoExpression representing a break statement with the specified type. The value passed to the label upon jumping can be specified.
    • call

      public static MethodCallExpression call(Method method, Iterable<? extends Expression> arguments)
      Creates a MethodCallExpression that represents a call to a static method that has arguments.
    • call

      public static MethodCallExpression call(Method method, Expression... arguments)
      Creates a MethodCallExpression that represents a call to a static method that has arguments, using varargs.
    • call

      public static MethodCallExpression call(@Nullable Expression expression, Method method, Iterable<? extends Expression> arguments)
      Creates a MethodCallExpression that represents a call to a method that takes arguments.
    • call

      public static MethodCallExpression call(@Nullable Expression expression, Method method, Expression... arguments)
      Creates a MethodCallExpression that represents a call to a method that takes arguments, using varargs.
    • call

      public static MethodCallExpression call(Type returnType, @Nullable Expression expression, Method method, Iterable<? extends Expression> arguments)
      Creates a MethodCallExpression that represents a call to a method that takes arguments, with an explicit return type.

      The return type must be consistent with the return type of the method, but may contain extra information, such as type parameters.

      The expression argument may be null if and only if the method is static.

    • call

      public static MethodCallExpression call(Type returnType, @Nullable Expression expression, Method method, Expression... arguments)
      Creates a MethodCallExpression that represents a call to a method that takes arguments, with an explicit return type, with varargs.

      The return type must be consistent with the return type of the method, but may contain extra information, such as type parameters.

      The expression argument may be null if and only if the method is static.

    • call

      public static MethodCallExpression call(Expression target, String methodName, Iterable<? extends Expression> arguments)
      Creates a MethodCallExpression that represents a call to an instance method by calling the appropriate factory method.
    • call

      public static MethodCallExpression call(Expression target, String methodName, Expression... arguments)
      Creates a MethodCallExpression that represents a call to an instance method by calling the appropriate factory method, using varargs.
    • call

      public static MethodCallExpression call(Type type, String methodName, Iterable<? extends Expression> arguments)
      Creates a MethodCallExpression that represents a call to a static method by calling the appropriate factory method.
    • call

      public static MethodCallExpression call(Type type, String methodName, Expression... arguments)
      Creates a MethodCallExpression that represents a call to a static method by calling the appropriate factory method, using varargs.
    • catch_

      public static CatchBlock catch_(ParameterExpression parameter, Statement statement)
      Creates a CatchBlock representing a catch statement with a reference to the caught Exception object for use in the handler body.
    • clearDebugInfo

      public static void clearDebugInfo()
      Creates a DebugInfoExpression for clearing a sequence point.
    • coalesce

      public static BinaryExpression coalesce(Expression left, Expression right)
      Creates a BinaryExpression that represents a coalescing operation.
    • coalesce

      public static BinaryExpression coalesce(Expression left, Expression right, LambdaExpression lambdaExpression)
      Creates a BinaryExpression that represents a coalescing operation, given a conversion function.
    • condition

      public static Expression condition(Expression test, Expression ifTrue, Expression ifFalse)
      Creates a ConditionalExpression that represents a conditional statement.
    • isConstantNull

      public static boolean isConstantNull(Expression e)
      Returns whether an expression always evaluates to null.
    • condition

      public static ConditionalExpression condition(Expression test, Expression ifTrue, Expression ifFalse, Type type)
      Creates a ConditionalExpression that represents a conditional statement.

      This method allows explicitly unifying the result type of the conditional expression in cases where the types of ifTrue and ifFalse expressions are not equal. Types of both ifTrue and ifFalse must be implicitly reference assignable to the result type. The type is allowed to be void.

    • constant

      public static ConstantExpression constant(@Nullable Object value)
      Creates a ConstantExpression that has the Value property set to the specified value.

      Does the right thing for null, String, primitive values (e.g. int 12, short 12, double 3.14 and boolean false), boxed primitives (e.g. Integer.valueOf(12)), enums, classes, BigDecimal, BigInteger, classes that have a constructor with a parameter for each field, and arrays.

    • constant

      public static ConstantExpression constant(@Nullable Object value, Type type)
      Creates a ConstantExpression that has the Value and Type properties set to the specified values.
    • constant

      public static ConstantExpression constant(@Nullable Object value, Type type, RoundingMode roundingMode)
      Creates a ConstantExpression that has the Value 、Type 、RoundingMode properties set to the specified values.
    • continue_

      public static GotoStatement continue_(LabelTarget labelTarget)
      Creates a GotoExpression representing a continue statement.
    • continue_

      public static GotoStatement continue_(LabelTarget labelTarget, Type type)
      Creates a GotoExpression representing a continue statement with the specified type.
    • convert_

      public static UnaryExpression convert_(Expression expression, Type type)
      Creates a UnaryExpression that represents a type conversion operation.
    • convert_

      public static UnaryExpression convert_(Expression expression, Type type, Method method)
      Creates a UnaryExpression that represents a conversion operation for which the implementing method is specified.
    • convertChecked

      public static Expression convertChecked(Expression expression, Type type)
      Creates a UnaryExpression that represents a conversion operation that throws an exception if the target type is overflowed.
    • convertChecked_

      public static UnaryExpression convertChecked_(Expression expression, Type type, Method method)
      Creates a UnaryExpression that represents a conversion operation that throws an exception if the target type is overflowed and for which the implementing method is specified.
    • debugInfo

      public static void debugInfo()
      Creates a DebugInfoExpression with the specified span.
    • decrement

      public static UnaryExpression decrement(Expression expression)
      Creates a UnaryExpression that represents the decrementing of the expression by 1.
    • decrement

      public static UnaryExpression decrement(Expression expression, Method method)
      Creates a UnaryExpression that represents the decrementing of the expression by 1.
    • default_

      public static DefaultExpression default_()
      Creates a DefaultExpression that has the Type property set to the specified type.
    • divide

      public static BinaryExpression divide(Expression left, Expression right)
      Creates a BinaryExpression that represents an arithmetic division operation.
    • divide

      public static BinaryExpression divide(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents an arithmetic division operation. The implementing method can be specified.
    • divideAssign

      public static BinaryExpression divideAssign(Expression left, Expression right)
      Creates a BinaryExpression that represents a division assignment operation that does not have overflow checking.
    • divideAssign

      public static BinaryExpression divideAssign(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents a division assignment operation that does not have overflow checking.
    • divideAssign

      public static BinaryExpression divideAssign(Expression left, Expression right, Method method, LambdaExpression lambdaExpression)
      Creates a BinaryExpression that represents a division assignment operation that does not have overflow checking.
    • dynamic

      public static DynamicExpression dynamic(CallSiteBinder binder, Type type, Iterable<? extends Expression> expressions)
      Creates a DynamicExpression that represents a dynamic operation bound by the provided CallSiteBinder.
    • dynamic

      public static DynamicExpression dynamic(CallSiteBinder binder, Type type, Expression... expression)
      Creates a DynamicExpression that represents a dynamic operation bound by the provided CallSiteBinder, using varargs.
    • elementInit

      public static ElementInit elementInit(Method method, Iterable<? extends Expression> expressions)
      Creates an ElementInit, given an Iterable<T> as the second argument.
    • elementInit

      public static ElementInit elementInit(Method method, Expression... expressions)
      Creates an ElementInit, given an array of values as the second argument, using varargs.
    • empty

      public static DefaultExpression empty()
      Creates an empty expression that has Void type.
    • equal

      public static BinaryExpression equal(Expression left, Expression right)
      Creates a BinaryExpression that represents an equality comparison.
    • equal

      public static BinaryExpression equal(Expression expression0, Expression expression1, boolean liftToNull, Method method)
      Creates a BinaryExpression that represents an equality comparison. The implementing method can be specified.
    • exclusiveOr

      public static BinaryExpression exclusiveOr(Expression left, Expression right)
      Creates a BinaryExpression that represents a bitwise XOR operation, using op_ExclusiveOr for user-defined types.
    • exclusiveOr

      public static BinaryExpression exclusiveOr(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents a bitwise XOR operation, using op_ExclusiveOr for user-defined types. The implementing method can be specified.
    • exclusiveOrAssign

      public static BinaryExpression exclusiveOrAssign(Expression left, Expression right)
      Creates a BinaryExpression that represents a bitwise XOR assignment operation, using op_ExclusiveOr for user-defined types.
    • exclusiveOrAssign

      public static BinaryExpression exclusiveOrAssign(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents a bitwise XOR assignment operation, using op_ExclusiveOr for user-defined types.
    • exclusiveOrAssign

      public static BinaryExpression exclusiveOrAssign(Expression left, Expression right, Method method, LambdaExpression lambdaExpression)
      Creates a BinaryExpression that represents a bitwise XOR assignment operation, using op_ExclusiveOr for user-defined types.
    • field

      public static MemberExpression field(@Nullable Expression expression, Field field)
      Creates a MemberExpression that represents accessing a field.
    • field

      public static MemberExpression field(@Nullable Expression expression, PseudoField field)
      Creates a MemberExpression that represents accessing a field.
    • field

      public static MemberExpression field(Expression expression, String fieldName)
      Creates a MemberExpression that represents accessing a field given the name of the field.
    • field

      public static MemberExpression field(@Nullable Expression expression, Type type, String fieldName)
      Creates a MemberExpression that represents accessing a field.
    • getActionType

      public static Class getActionType(Class... typeArgs)
      Creates a Type object that represents a generic System.Action delegate type that has specific type arguments.
    • getDelegateType

      public static Class getDelegateType(Class... typeArgs)
      Gets a Type object that represents a generic System.Func or System.Action delegate type that has specific type arguments.
    • getFuncType

      public static Class getFuncType(Class... typeArgs)
      Creates a Type object that represents a generic System.Func delegate type that has specific type arguments. The last type argument specifies the return type of the created delegate.
    • goto_

      public static GotoStatement goto_(LabelTarget labelTarget)
      Creates a GotoExpression representing a "go to" statement.
    • goto_

      public static GotoStatement goto_(LabelTarget labelTarget, Expression expression)
      Creates a GotoExpression representing a "go to" statement. The value passed to the label upon jumping can be specified.
    • goto_

      public static GotoStatement goto_(LabelTarget labelTarget, Type type)
      Creates a GotoExpression representing a "go to" statement with the specified type.
    • goto_

      public static GotoStatement goto_(LabelTarget labelTarget, Expression expression, Type type)
      Creates a GotoExpression representing a "go to" statement with the specified type. The value passed to the label upon jumping can be specified.
    • greaterThan

      public static BinaryExpression greaterThan(Expression left, Expression right)
      Creates a BinaryExpression that represents a "greater than" numeric comparison.
    • greaterThan

      public static BinaryExpression greaterThan(Expression left, Expression right, boolean liftToNull, Method method)
      Creates a BinaryExpression that represents a "greater than" numeric comparison. The implementing method can be specified.
    • greaterThanOrEqual

      public static BinaryExpression greaterThanOrEqual(Expression left, Expression right)
      Creates a BinaryExpression that represents a "greater than or equal" numeric comparison.
    • greaterThanOrEqual

      public static BinaryExpression greaterThanOrEqual(Expression left, Expression right, boolean liftToNull, Method method)
      Creates a BinaryExpression that represents a "greater than or equal" numeric comparison.
    • ifThen

      public static ConditionalStatement ifThen(Expression test, Node ifTrue)
      Creates a ConditionalExpression that represents a conditional block with an if statement.
    • ifThenElse

      public static ConditionalStatement ifThenElse(Expression test, Node ifTrue, Node ifFalse)
      Creates a ConditionalExpression that represents a conditional block with if and else statements.
    • ifThenElse

      public static ConditionalStatement ifThenElse(Expression test, Node... nodes)
      Creates a ConditionalExpression that represents a conditional block with if and else statements: if (test) stmt1 [ else if (test2) stmt2 ]... [ else stmtN ].
    • ifThenElse

      public static ConditionalStatement ifThenElse(Iterable<? extends Node> nodes)
      Creates a ConditionalExpression that represents a conditional block with if and else statements: if (test) stmt1 [ else if (test2) stmt2 ]... [ else stmtN ].
    • increment

      public static UnaryExpression increment(Expression expression)
      Creates a UnaryExpression that represents the incrementing of the expression value by 1.
    • increment

      public static UnaryExpression increment(Expression expression, Method method)
      Creates a UnaryExpression that represents the incrementing of the expression by 1.
    • invoke

      public static InvocationExpression invoke(Expression expression, Iterable<? extends Expression> arguments)
      Creates an InvocationExpression that applies a delegate or lambda expression to a list of argument expressions.
    • invoke

      public static InvocationExpression invoke(Expression expression, Expression... arguments)
      Creates an InvocationExpression that applies a delegate or lambda expression to a list of argument expressions, using varargs.
    • isFalse

      public static UnaryExpression isFalse(Expression expression)
      Returns whether the expression evaluates to false.
    • isFalse

      public static UnaryExpression isFalse(Expression expression, Method method)
      Returns whether the expression evaluates to false.
    • isTrue

      public static UnaryExpression isTrue(Expression expression)
      Returns whether the expression evaluates to true.
    • isTrue

      public static UnaryExpression isTrue(Expression expression, Method method)
      Returns whether the expression evaluates to true.
    • label

      public static LabelTarget label()
      Creates a LabelTarget representing a label with X type and no name.
    • label

      public static LabelStatement label(LabelTarget labelTarget)
      Creates a LabelExpression representing a label without a default value.
    • label

      public static LabelTarget label(String name)
      Creates a LabelTarget representing a label with X type and the given name.
    • label

      public static LabelTarget label(Type type)
      Creates a LabelTarget representing a label with the given type.
    • label

      public static LabelStatement label(LabelTarget labelTarget, Expression expression)
      Creates a LabelExpression representing a label with the given default value.
    • label

      public static LabelTarget label(Type type, String name)
      Creates a LabelTarget representing a label with the given type and name.
    • lambda

      public static <F extends Function<?>> FunctionExpression<F> lambda(F function)
      Creates a FunctionExpression from an actual function.
    • lambda

      public static <F extends Function<?>> FunctionExpression<F> lambda(BlockStatement body, Iterable<? extends ParameterExpression> parameters)
      Creates a LambdaExpression by first constructing a delegate type.
    • lambda

      public static <F extends Function<?>> FunctionExpression<F> lambda(BlockStatement body, ParameterExpression... parameters)
      Creates a LambdaExpression by first constructing a delegate type, using varargs.
    • lambda

      public static <F extends Function<?>> FunctionExpression<F> lambda(Expression body, Iterable<? extends ParameterExpression> parameters)
      Creates an Expression where the delegate type F is known at compile time.
    • lambda

      public static <F extends Function<?>> FunctionExpression<F> lambda(Expression body, ParameterExpression... parameters)
      Creates an Expression where the delegate type F is known at compile time, using varargs.
    • lambda

      public static <T, F extends Function<? extends T>> FunctionExpression<F> lambda(Class<F> type, BlockStatement body, Iterable<? extends ParameterExpression> parameters)
      Creates a LambdaExpression by first constructing a delegate type.

      It can be used when the delegate type is not known at compile time.

    • lambda

      public static <T, F extends Function<? extends T>> FunctionExpression<F> lambda(Class<F> type, BlockStatement body, ParameterExpression... parameters)
      Creates a LambdaExpression by first constructing a delegate type, using varargs.

      It can be used when the delegate type is not known at compile time.

    • lambda

      public static <T, F extends Function<? extends T>> FunctionExpression<F> lambda(Class<F> type, Expression body, Iterable<? extends ParameterExpression> parameters)
      Creates a LambdaExpression by first constructing a delegate type.

      It can be used when the delegate type is not known at compile time.

    • lambda

      public static <T, F extends Function<? extends T>> FunctionExpression<F> lambda(Class<F> type, Expression body, ParameterExpression... parameters)
      Creates a LambdaExpression by first constructing a delegate type, using varargs.

      It can be used when the delegate type is not known at compile time.

    • leftShift

      public static BinaryExpression leftShift(Expression left, Expression right)
      Creates a BinaryExpression that represents a bitwise left-shift operation.
    • leftShift

      public static BinaryExpression leftShift(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents a bitwise left-shift operation.
    • leftShiftAssign

      public static BinaryExpression leftShiftAssign(Expression left, Expression right)
      Creates a BinaryExpression that represents a bitwise left-shift assignment operation.
    • leftShiftAssign

      public static BinaryExpression leftShiftAssign(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents a bitwise left-shift assignment operation.
    • leftShiftAssign

      public static BinaryExpression leftShiftAssign(Expression left, Expression right, Method method, LambdaExpression lambdaExpression)
      Creates a BinaryExpression that represents a bitwise left-shift assignment operation.
    • lessThan

      public static BinaryExpression lessThan(Expression left, Expression right)
      Creates a BinaryExpression that represents a "less than" numeric comparison.
    • lessThan

      public static BinaryExpression lessThan(Expression left, Expression right, boolean liftToNull, Method method)
      Creates a BinaryExpression that represents a "less than" numeric comparison.
    • lessThanOrEqual

      public static BinaryExpression lessThanOrEqual(Expression left, Expression right)
      Creates a BinaryExpression that represents a " less than or equal" numeric comparison.
    • lessThanOrEqual

      public static BinaryExpression lessThanOrEqual(Expression left, Expression right, boolean liftToNull, Method method)
      Creates a BinaryExpression that represents a "less than or equal" numeric comparison.
    • listBind

      public static MemberListBinding listBind(Member member, Iterable<? extends ElementInit> elementInits)
      Creates a MemberListBinding where the member is a field or property.
    • listBind

      public static MemberListBinding listBind(Member member, ElementInit... elementInits)
      Creates a MemberListBinding where the member is a field or property, using varargs.
    • listBind

      public static MemberListBinding listBind(Method method, Iterable<? extends ElementInit> elementInits)
      Creates a MemberListBinding based on a specified property accessor method.
    • listBind

      public static MemberListBinding listBind(Method method, ElementInit... elementInits)
      Creates a MemberListBinding object based on a specified property accessor method, using varargs.
    • listInit

      public static ListInitExpression listInit(NewExpression newExpression, Iterable<? extends ElementInit> elementInits)
      Creates a ListInitExpression that uses specified ElementInit objects to initialize a collection.
    • listInit

      public static ListInitExpression listInit(NewExpression newExpression, ElementInit... elementInits)
      Creates a ListInitExpression that uses specified ElementInit objects to initialize a collection, using varargs.
    • listInitE

      public static ListInitExpression listInitE(NewExpression newExpression, Iterable<? extends Expression> arguments)
      Creates a ListInitExpression that uses a method named "Add" to add elements to a collection.
    • listInit

      public static ListInitExpression listInit(NewExpression newExpression, Expression... arguments)
      Creates a ListInitExpression that uses a method named "Add" to add elements to a collection, using varargs.
    • listInit

      public static ListInitExpression listInit(NewExpression newExpression, Method method, Iterable<? extends Expression> arguments)
      Creates a ListInitExpression that uses a specified method to add elements to a collection.
    • listInit

      public static ListInitExpression listInit(NewExpression newExpression, Method method, Expression... arguments)
      Creates a ListInitExpression that uses a specified method to add elements to a collection, using varargs.
    • for_

      public static ForStatement for_(Iterable<? extends DeclarationStatement> declarations, @Nullable Expression condition, @Nullable Expression post, Statement body)
      Creates a LoopExpression with the given body.
    • for_

      public static ForStatement for_(DeclarationStatement declaration, @Nullable Expression condition, @Nullable Expression post, Statement body)
      Creates a LoopExpression with the given body.
    • forEach

      public static ForEachStatement forEach(ParameterExpression parameter, Expression iterable, Statement body)
      Creates a ForEachExpression with the given body.
    • makeBinary

      public static BinaryExpression makeBinary(ExpressionType binaryType, Expression left, Expression right)
      Creates a BinaryExpression, given the left and right operands, by calling an appropriate factory method.
    • box

      public static Expression box(Expression expression, Primitive primitive)
      Returns an expression to box the value of a primitive expression. E.g. box(e, Primitive.INT) returns Integer.valueOf(e).
    • box

      public static Expression box(Expression expression)
      Converts e.g. "anInteger" to "Integer.valueOf(anInteger)".
    • unboxExact

      public static Expression unboxExact(Expression expression, Primitive primitive)
      Returns an expression to unbox the value of a boxed-primitive expression exactly. E.g. unboxExact(e, Primitive.INT) returns e.intValueExact(). It is assumed that e is of the right box type (or Number)."Value
    • unbox

      public static Expression unbox(Expression expression, Primitive primitive)
      Returns an expression to unbox the value of a boxed-primitive expression. E.g. unbox(e, Primitive.INT) returns e.intValue(). It is assumed that e is of the right box type (or Number)."Value
    • unbox

      public static Expression unbox(Expression expression)
      Converts e.g. "anInteger" to "anInteger.intValue()".
    • makeBinary

      public static BinaryExpression makeBinary(ExpressionType binaryType, Expression left, Expression right, boolean liftToNull, Method method)
      Creates a BinaryExpression, given the left operand, right operand and implementing method, by calling the appropriate factory method.
    • makeBinary

      public static BinaryExpression makeBinary(ExpressionType binaryType, Expression left, Expression right, boolean liftToNull, Method method, LambdaExpression lambdaExpression)
      Creates a BinaryExpression, given the left operand, right operand, implementing method and type conversion function, by calling the appropriate factory method.
    • makeTernary

      public static TernaryExpression makeTernary(ExpressionType ternaryType, Expression e0, Expression e1, Expression e2)
      Creates a TernaryExpression, given the left and right operands, by calling an appropriate factory method.
    • makeCatchBlock

      public static CatchBlock makeCatchBlock(Type type, ParameterExpression variable, Expression body, Expression filter)
      Creates a CatchBlock representing a catch statement with the specified elements.
    • makeDynamic

      public static DynamicExpression makeDynamic(Type type, CallSiteBinder binder, Iterable<? extends Expression> arguments)
      Creates a DynamicExpression that represents a dynamic operation bound by the provided CallSiteBinder.
    • makeDynamic

      public static DynamicExpression makeDynamic(Type type, CallSiteBinder binder, Expression... arguments)
      Creates a DynamicExpression that represents a dynamic operation bound by the provided CallSiteBinder, using varargs.
    • makeGoto

      public static GotoStatement makeGoto(GotoExpressionKind kind, LabelTarget target, Expression value, Type type)
      Creates a GotoExpression representing a jump of the specified GotoExpressionKind. The value passed to the label upon jumping can also be specified.
    • makeMemberAccess

      public static MemberExpression makeMemberAccess(@Nullable Expression expression, PseudoField member)
      Creates a MemberExpression that represents accessing a field.
    • makeTry

      public static TryStatement makeTry(Type type, Expression body, Expression finally_, Expression fault, Iterable<? extends CatchBlock> handlers)
      Creates a TryExpression representing a try block with the specified elements.
    • makeTry

      public static TryStatement makeTry(Type type, Expression body, Expression finally_, Expression fault, CatchBlock... handlers)
      Creates a TryExpression representing a try block with the specified elements, using varargs.
    • makeUnary

      public static UnaryExpression makeUnary(ExpressionType expressionType, Expression expression)
      Creates a UnaryExpression, given an operand, by calling the appropriate factory method.
    • makeUnary

      public static UnaryExpression makeUnary(ExpressionType expressionType, Expression expression, Type type, @Nullable Method method)
      Creates a UnaryExpression, given an operand and implementing method, by calling the appropriate factory method.
    • memberBind

      public static MemberMemberBinding memberBind(Member member, Iterable<? extends MemberBinding> bindings)
      Creates a MemberMemberBinding that represents the recursive initialization of members of a field or property.
    • memberBind

      public static MemberMemberBinding memberBind(Member member, MemberBinding... bindings)
      Creates a MemberMemberBinding that represents the recursive initialization of members of a field or property, using varargs.
    • memberBind

      public static MemberMemberBinding memberBind(Method method, Iterable<? extends MemberBinding> bindings)
      Creates a MemberMemberBinding that represents the recursive initialization of members of a member that is accessed by using a property accessor method.
    • memberBind

      public static MemberMemberBinding memberBind(Method method, MemberBinding... bindings)
      Creates a MemberMemberBinding that represents the recursive initialization of members of a member that is accessed by using a property accessor method, using varargs.
    • memberInit

      public static MemberInitExpression memberInit(NewExpression newExpression, Iterable<? extends MemberBinding> bindings)
      Represents an expression that creates a new object and initializes a property of the object.
    • memberInit

      public static MemberInitExpression memberInit(NewExpression newExpression, MemberBinding... bindings)
      Represents an expression that creates a new object and initializes a property of the object, using varargs.
    • methodDecl

      public static MethodDeclaration methodDecl(int modifier, Type resultType, String name, Iterable<? extends ParameterExpression> parameters, BlockStatement body)
      Declares a method.
    • constructorDecl

      public static ConstructorDeclaration constructorDecl(int modifier, Type declaredAgainst, Iterable<? extends ParameterExpression> parameters, BlockStatement body)
      Declares a constructor.
    • fieldDecl

      public static FieldDeclaration fieldDecl(int modifier, ParameterExpression parameter, @Nullable Expression initializer)
      Declares a field with an initializer.
    • fieldDecl

      public static FieldDeclaration fieldDecl(int modifier, ParameterExpression parameter)
      Declares a field.
    • classDecl

      public static ClassDeclaration classDecl(int modifier, String name, @Nullable Type extended, List<Type> implemented, List<MemberDeclaration> memberDeclarations)
      Declares a class.
    • modulo

      public static BinaryExpression modulo(Expression left, Expression right)
      Creates a BinaryExpression that represents an arithmetic remainder operation.
    • modulo

      public static BinaryExpression modulo(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents an arithmetic remainder operation.
    • moduloAssign

      public static BinaryExpression moduloAssign(Expression left, Expression right)
      Creates a BinaryExpression that represents a remainder assignment operation.
    • moduloAssign

      public static BinaryExpression moduloAssign(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents a remainder assignment operation.
    • moduloAssign

      public static BinaryExpression moduloAssign(Expression left, Expression right, Method method, LambdaExpression lambdaExpression)
      Creates a BinaryExpression that represents a remainder assignment operation.
    • multiply

      public static BinaryExpression multiply(Expression left, Expression right)
      Creates a BinaryExpression that represents an arithmetic multiplication operation that does not have overflow checking.
    • multiply

      public static BinaryExpression multiply(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents an arithmetic multiplication operation that does not have overflow checking.
    • multiplyAssign

      public static BinaryExpression multiplyAssign(Expression left, Expression right)
      Creates a BinaryExpression that represents a multiplication assignment operation that does not have overflow checking.
    • multiplyAssign

      public static BinaryExpression multiplyAssign(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents a multiplication assignment operation that does not have overflow checking.
    • multiplyAssign

      public static BinaryExpression multiplyAssign(Expression left, Expression right, Method method, LambdaExpression lambdaExpression)
      Creates a BinaryExpression that represents a multiplication assignment operation that does not have overflow checking.
    • multiplyAssignChecked

      public static BinaryExpression multiplyAssignChecked(Expression left, Expression right)
      Creates a BinaryExpression that represents a multiplication assignment operation that has overflow checking.
    • multiplyAssignChecked

      public static BinaryExpression multiplyAssignChecked(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents a multiplication assignment operation that has overflow checking.
    • multiplyAssignChecked

      public static BinaryExpression multiplyAssignChecked(Expression left, Expression right, Method method, LambdaExpression lambdaExpression)
      Creates a BinaryExpression that represents a multiplication assignment operation that has overflow checking.
    • multiplyChecked

      public static BinaryExpression multiplyChecked(Expression left, Expression right)
      Creates a BinaryExpression that represents an arithmetic multiplication operation that has overflow checking.
    • multiplyChecked

      public static BinaryExpression multiplyChecked(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents an arithmetic multiplication operation that has overflow checking.
    • negate

      public static UnaryExpression negate(Expression expression)
      Creates a UnaryExpression that represents an arithmetic negation operation.
    • negate

      public static UnaryExpression negate(Expression expression, Method method)
      Creates a UnaryExpression that represents an arithmetic negation operation.
    • negateChecked

      public static UnaryExpression negateChecked(Expression expression)
      Creates a UnaryExpression that represents an arithmetic negation operation that has overflow checking.
    • negateChecked

      public static UnaryExpression negateChecked(Expression expression, Method method)
      Creates a UnaryExpression that represents an arithmetic negation operation that has overflow checking. The implementing method can be specified.
    • new_

      public static NewExpression new_(Constructor constructor)
      Creates a NewExpression that represents calling the specified constructor that takes no arguments.
    • new_

      public static NewExpression new_(Type type)
      Creates a NewExpression that represents calling the parameterless constructor of the specified type.
    • new_

      public static NewExpression new_(Type type, Iterable<? extends Expression> arguments)
      Creates a NewExpression that represents calling the constructor of the specified type whose parameters are assignable from the specified arguments.
    • new_

      public static NewExpression new_(Type type, Expression... arguments)
      Creates a NewExpression that represents calling the constructor of the specified type whose parameters are assignable from the specified arguments, using varargs.
    • new_

      public static NewExpression new_(Type type, Iterable<? extends Expression> arguments, @Nullable Iterable<? extends MemberDeclaration> memberDeclarations)
      Creates a NewExpression that represents calling the constructor of the specified type whose parameters are assignable from the specified arguments.
    • new_

      public static NewExpression new_(Type type, Iterable<? extends Expression> arguments, MemberDeclaration... memberDeclarations)
      Creates a NewExpression that represents calling the constructor of the specified type whose parameters are assignable from the specified arguments, using varargs.
    • new_

      public static NewExpression new_(Constructor constructor, Iterable<? extends Expression> expressions)
      Creates a NewExpression that represents calling the specified constructor with the specified arguments.
    • new_

      public static NewExpression new_(Constructor constructor, Expression... expressions)
      Creates a NewExpression that represents calling the specified constructor with the specified arguments, using varargs.
    • new_

      public static NewExpression new_(Constructor constructor, Iterable<? extends Expression> expressions, Iterable<? extends MemberDeclaration> memberDeclarations)
      Creates a NewExpression that represents calling the specified constructor with the specified arguments.

      The members that access the constructor initialized fields are specified.

    • new_

      public static NewExpression new_(Constructor constructor, Iterable<? extends Expression> expressions, MemberDeclaration... memberDeclarations)
      Creates a NewExpression that represents calling the specified constructor with the specified arguments, using varargs.

      The members that access the constructor initialized fields are specified.

    • newArrayBounds

      public static NewArrayExpression newArrayBounds(Type type, int dimension, @Nullable Expression bound)
      Creates a NewArrayExpression that represents creating an array that has a specified rank.

      For example, newArrayBounds(int.class, 1, constant(8)) yields new int[8]; newArrayBounds(int.class, 3, constant(8)) yields new int[8][][];

      Parameters:
      type - Element type of the array
      dimension - Dimension of the array
      bound - Size of the first dimension
    • newArrayInit

      public static NewArrayExpression newArrayInit(Type type, Iterable<? extends Expression> expressions)
      Creates a NewArrayExpression that represents creating a one-dimensional array and initializing it from a list of elements.

      For example, "newArrayInit(int.class, Arrays.asList(constant(1), constant(2))" yields "new int[] {1, 2}".

      Parameters:
      type - Element type of the array
      expressions - Initializer expressions
    • newArrayInit

      public static NewArrayExpression newArrayInit(Type type, Expression... expressions)
      Creates a NewArrayExpression that represents creating a one-dimensional array and initializing it from a list of elements, using varargs.

      For example, "newArrayInit(int.class, constant(1), constant(2)" yields "new int[] {1, 2}".

      Parameters:
      type - Element type of the array
      expressions - Initializer expressions
    • newArrayInit

      public static NewArrayExpression newArrayInit(Type type, int dimension, Iterable<? extends Expression> expressions)
      Creates a NewArrayExpression that represents creating a n-dimensional array and initializing it from a list of elements.

      For example, "newArrayInit(int.class, 2, Arrays.asList())" yields "new int[][] {}".

      Parameters:
      type - Element type of the array
      dimension - Dimension of the array
      expressions - Initializer expressions
    • newArrayInit

      public static NewArrayExpression newArrayInit(Type type, int dimension, Expression... expressions)
      Creates a NewArrayExpression that represents creating an n-dimensional array and initializing it from a list of elements, using varargs.

      For example, "newArrayInit(int.class, 2)" yields "new int[][] {}".

      Parameters:
      type - Element type of the array
      dimension - Dimension of the array
      expressions - Initializer expressions
    • not

      public static UnaryExpression not(Expression expression)
      Creates a UnaryExpression that represents a bitwise complement operation.
    • not

      public static UnaryExpression not(Expression expression, Method method)
      Creates a UnaryExpression that represents a bitwise complement operation. The implementing method can be specified.
    • notEqual

      public static BinaryExpression notEqual(Expression left, Expression right)
      Creates a BinaryExpression that represents an inequality comparison.
    • notEqual

      public static BinaryExpression notEqual(Expression left, Expression right, boolean liftToNull, Method method)
      Creates a BinaryExpression that represents an inequality comparison.
    • onesComplement

      public static UnaryExpression onesComplement(Expression expression)
      Returns the expression representing the ones complement.
    • onesComplement

      public static UnaryExpression onesComplement(Expression expression, Method method)
      Returns the expression representing the ones complement.
    • or

      public static BinaryExpression or(Expression left, Expression right)
      Creates a BinaryExpression that represents a bitwise OR operation.
    • or

      public static BinaryExpression or(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents a bitwise OR operation.
    • orAssign

      public static BinaryExpression orAssign(Expression left, Expression right)
      Creates a BinaryExpression that represents a bitwise OR assignment operation.
    • orAssign

      public static BinaryExpression orAssign(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents a bitwise OR assignment operation.
    • orAssign

      public static BinaryExpression orAssign(Expression left, Expression right, Method method, LambdaExpression lambdaExpression)
      Creates a BinaryExpression that represents a bitwise OR assignment operation.
    • orElse

      public static BinaryExpression orElse(Expression left, Expression right)
      Creates a BinaryExpression that represents a conditional OR operation that evaluates the second operand only if the first operand evaluates to false.
    • orElse

      public static BinaryExpression orElse(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents a conditional OR operation that evaluates the second operand only if the first operand evaluates to false.
    • parameter

      public static ParameterExpression parameter(Type type)
      Creates a ParameterExpression node that can be used to identify a parameter or a variable in an expression tree.
    • parameter

      public static ParameterExpression parameter(Type type, String name)
      Creates a ParameterExpression node that can be used to identify a parameter or a variable in an expression tree.
    • parameter

      public static ParameterExpression parameter(int modifiers, Type type, String name)
      Creates a ParameterExpression.
    • postDecrementAssign

      public static UnaryExpression postDecrementAssign(Expression expression)
      Creates a UnaryExpression that represents the assignment of the expression followed by a subsequent decrement by 1 of the original expression.
    • postDecrementAssign

      public static UnaryExpression postDecrementAssign(Expression expression, Method method)
      Creates a UnaryExpression that represents the assignment of the expression followed by a subsequent decrement by 1 of the original expression.
    • postIncrementAssign

      public static UnaryExpression postIncrementAssign(Expression expression)
      Creates a UnaryExpression that represents the assignment of the expression followed by a subsequent increment by 1 of the original expression.
    • postIncrementAssign

      public static UnaryExpression postIncrementAssign(Expression expression, Method method)
      Creates a UnaryExpression that represents the assignment of the expression followed by a subsequent increment by 1 of the original expression.
    • power

      public static BinaryExpression power(Expression left, Expression right)
      Creates a BinaryExpression that represents raising a number to a power.
    • power

      public static BinaryExpression power(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents raising a number to a power.
    • powerAssign

      public static BinaryExpression powerAssign(Expression left, Expression right)
      Creates a BinaryExpression that represents raising an expression to a power and assigning the result back to the expression.
    • powerAssign

      public static BinaryExpression powerAssign(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents raising an expression to a power and assigning the result back to the expression.
    • powerAssign

      public static BinaryExpression powerAssign(Expression left, Expression right, Method method, LambdaExpression lambdaExpression)
      Creates a BinaryExpression that represents raising an expression to a power and assigning the result back to the expression.
    • preDecrementAssign

      public static UnaryExpression preDecrementAssign(Expression expression)
      Creates a UnaryExpression that decrements the expression by 1 and assigns the result back to the expression.
    • preDecrementAssign

      public static UnaryExpression preDecrementAssign(Expression expression, Method method)
      Creates a UnaryExpression that decrements the expression by 1 and assigns the result back to the expression.
    • preIncrementAssign

      public static UnaryExpression preIncrementAssign(Expression expression)
      Creates a UnaryExpression that increments the expression by 1 and assigns the result back to the expression.
    • preIncrementAssign

      public static UnaryExpression preIncrementAssign(Expression expression, Method method)
      Creates a UnaryExpression that increments the expression by 1 and assigns the result back to the expression.
    • property

      public static MemberExpression property(Expression expression, Method method)
      Creates a MemberExpression that represents accessing a property by using a property accessor method.
    • property

      public static MemberExpression property(Expression expression, org.apache.calcite.linq4j.tree.Expressions.PropertyInfo property)
      Creates a MemberExpression that represents accessing a property.
    • property

      public static MemberExpression property(Expression expression, String name)
      Creates a MemberExpression that represents accessing a property.
    • property

      public static IndexExpression property(Expression expression, org.apache.calcite.linq4j.tree.Expressions.PropertyInfo property, Iterable<? extends Expression> arguments)
      Creates an IndexExpression representing the access to an indexed property.
    • property

      public static IndexExpression property(Expression expression, org.apache.calcite.linq4j.tree.Expressions.PropertyInfo property, Expression... arguments)
      Creates an IndexExpression representing the access to an indexed property, using varargs.
    • property

      public static IndexExpression property(Expression expression, String name, Expression... arguments)
      Creates an IndexExpression representing the access to an indexed property.
    • property

      public static MemberExpression property(Expression expression, Type type, String name)
      Creates a MemberExpression accessing a property.
    • propertyOrField

      public static MemberExpression propertyOrField(Expression expression, String propertyOfFieldName)
      Creates a MemberExpression that represents accessing a property or field.
    • quote

      public static UnaryExpression quote(Expression expression)
      Creates a UnaryExpression that represents an expression that has a constant value of type Expression.
    • reduce

      public static Expression reduce(Expression expression)
      Reduces this node to a simpler expression. If CanReduce returns true, this should return a valid expression. This method can return another node which itself must be reduced.
    • reduceAndCheck

      public static Expression reduceAndCheck(Expression expression)
      Reduces this node to a simpler expression. If CanReduce returns true, this should return a valid expression. This method can return another node which itself must be reduced.
    • reduceExtensions

      public static Expression reduceExtensions(Expression expression)
      Reduces the expression to a known node type (that is not an Extension node) or just returns the expression if it is already a known type.
    • referenceEqual

      public static Expression referenceEqual(Expression left, Expression right)
      Creates a BinaryExpression that represents a reference equality comparison.
    • referenceNotEqual

      public static Expression referenceNotEqual(Expression left, Expression right)
      Creates a BinaryExpression that represents a reference inequality comparison.
    • rethrow

      public static UnaryExpression rethrow()
      Creates a UnaryExpression that represents a rethrowing of an exception.
    • rethrow

      public static UnaryExpression rethrow(Type type)
      Creates a UnaryExpression that represents a rethrowing of an exception with a given type.
    • return_

      public static GotoStatement return_(@Nullable LabelTarget labelTarget)
      Creates a GotoExpression representing a return statement.
    • return_

      public static GotoStatement return_(@Nullable LabelTarget labelTarget, @Nullable Expression expression)
      Creates a GotoExpression representing a return statement. The value passed to the label upon jumping can be specified.
    • makeGoto

      public static GotoStatement makeGoto(GotoExpressionKind kind, @Nullable LabelTarget labelTarget, @Nullable Expression expression)
    • return_

      public static GotoStatement return_(LabelTarget labelTarget, Type type)
      Creates a GotoExpression representing a return statement with the specified type.
    • return_

      public static GotoStatement return_(LabelTarget labelTarget, Expression expression, Type type)
      Creates a GotoExpression representing a return statement with the specified type. The value passed to the label upon jumping can be specified.
    • rightShift

      public static BinaryExpression rightShift(Expression left, Expression right)
      Creates a BinaryExpression that represents a bitwise right-shift operation.
    • rightShift

      public static BinaryExpression rightShift(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents a bitwise right-shift operation.
    • rightShiftAssign

      public static BinaryExpression rightShiftAssign(Expression left, Expression right)
      Creates a BinaryExpression that represents a bitwise right-shift assignment operation.
    • rightShiftAssign

      public static BinaryExpression rightShiftAssign(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents a bitwise right-shift assignment operation.
    • rightShiftAssign

      public static BinaryExpression rightShiftAssign(Expression left, Expression right, Method method, LambdaExpression lambdaExpression)
      Creates a BinaryExpression that represents a bitwise right-shift assignment operation.
    • runtimeVariables

      public static org.apache.calcite.linq4j.tree.Expressions.RuntimeVariablesExpression runtimeVariables(Iterable<? extends ParameterExpression> expressions)
      Creates an instance of RuntimeVariablesExpression.
    • runtimeVariables

      public static org.apache.calcite.linq4j.tree.Expressions.RuntimeVariablesExpression runtimeVariables(ParameterExpression... arguments)
      Creates an instance of RuntimeVariablesExpression, using varargs.
    • subtract

      public static BinaryExpression subtract(Expression left, Expression right)
      Creates a BinaryExpression that represents an arithmetic subtraction operation that does not have overflow checking.
    • subtract

      public static BinaryExpression subtract(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents an arithmetic subtraction operation that does not have overflow checking.
    • subtractAssign

      public static BinaryExpression subtractAssign(Expression left, Expression right)
      Creates a BinaryExpression that represents a subtraction assignment operation that does not have overflow checking.
    • subtractAssign

      public static BinaryExpression subtractAssign(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents a subtraction assignment operation that does not have overflow checking.
    • subtractAssign

      public static BinaryExpression subtractAssign(Expression left, Expression right, Method method, LambdaExpression lambdaExpression)
      Creates a BinaryExpression that represents a subtraction assignment operation that does not have overflow checking.
    • subtractAssignChecked

      public static BinaryExpression subtractAssignChecked(Expression left, Expression right)
      Creates a BinaryExpression that represents a subtraction assignment operation that has overflow checking.
    • subtractAssignChecked

      public static BinaryExpression subtractAssignChecked(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents a subtraction assignment operation that has overflow checking.
    • subtractAssignChecked

      public static BinaryExpression subtractAssignChecked(Expression left, Expression right, Method method, LambdaExpression lambdaExpression)
      Creates a BinaryExpression that represents a subtraction assignment operation that has overflow checking.
    • subtractChecked

      public static BinaryExpression subtractChecked(Expression left, Expression right)
      Creates a BinaryExpression that represents an arithmetic subtraction operation that has overflow checking.
    • subtractChecked

      public static BinaryExpression subtractChecked(Expression left, Expression right, Method method)
      Creates a BinaryExpression that represents an arithmetic subtraction operation that has overflow checking.
    • switch_

      public static SwitchStatement switch_(Expression switchValue, SwitchCase... cases)
      Creates a SwitchExpression that represents a switch statement without a default case.
    • switch_

      public static SwitchStatement switch_(Expression switchValue, Expression defaultBody, SwitchCase... cases)
      Creates a SwitchExpression that represents a switch statement that has a default case.
    • switch_

      public static SwitchStatement switch_(Expression switchValue, @Nullable Expression defaultBody, @Nullable Method method, Iterable<? extends SwitchCase> cases)
      Creates a SwitchExpression that represents a switch statement that has a default case.
    • switch_

      public static SwitchStatement switch_(Expression switchValue, Expression defaultBody, Method method, SwitchCase... cases)
      Creates a SwitchExpression that represents a switch statement that has a default case, using varargs.
    • switch_

      public static SwitchStatement switch_(Type type, Expression switchValue, Expression defaultBody, Method method, Iterable<? extends SwitchCase> cases)
      Creates a SwitchExpression that represents a switch statement that has a default case.
    • switch_

      public static SwitchStatement switch_(Type type, Expression switchValue, Expression defaultBody, Method method, SwitchCase... cases)
      Creates a SwitchExpression that represents a switch statement that has a default case, using varargs.
    • switchCase

      public static SwitchCase switchCase(Expression expression, Iterable<? extends Expression> body)
      Creates a SwitchCase for use in a SwitchExpression.
    • switchCase

      public static SwitchCase switchCase(Expression expression, Expression... body)
      Creates a SwitchCase for use in a SwitchExpression, with varargs.
    • symbolDocument

      public static org.apache.calcite.linq4j.tree.Expressions.SymbolDocumentInfo symbolDocument(String fileName)
      Creates an instance of SymbolDocumentInfo.
    • symbolDocument

      public static org.apache.calcite.linq4j.tree.Expressions.SymbolDocumentInfo symbolDocument(String fileName, UUID language)
      Creates an instance of SymbolDocumentInfo.
    • symbolDocument

      public static org.apache.calcite.linq4j.tree.Expressions.SymbolDocumentInfo symbolDocument(String fileName, UUID language, UUID vendor)
      Creates an instance of SymbolDocumentInfo.
    • symbolDocument

      public static org.apache.calcite.linq4j.tree.Expressions.SymbolDocumentInfo symbolDocument(String filename, UUID language, UUID vendor, UUID documentType)
      Creates an instance of SymbolDocumentInfo.
    • fromStatement

      public static Expression fromStatement(Statement statement)
      Create an expression from a statement.
    • throw_

      public static ThrowStatement throw_(Expression expression)
      Creates a statement that represents the throwing of an exception.
    • tryCatch

      public static TryStatement tryCatch(Statement body, Iterable<? extends CatchBlock> handlers)
      Creates a TryExpression representing a try block with any number of catch statements and neither a fault nor finally block.
    • tryCatch

      public static TryStatement tryCatch(Statement body, CatchBlock... handlers)
      Creates a TryExpression representing a try block with any number of catch statements and neither a fault nor finally block, with varargs.
    • tryCatchFinally

      public static TryStatement tryCatchFinally(Statement body, Iterable<? extends CatchBlock> handlers, Statement finally_)
      Creates a TryExpression representing a try block with any number of catch statements and a finally block.
    • tryCatchFinally

      public static TryStatement tryCatchFinally(Statement body, Statement finally_, CatchBlock... handlers)
      Creates a TryExpression representing a try block with any number of catch statements and a finally block, with varargs.
    • tryFinally

      public static TryStatement tryFinally(Statement body, Statement finally_)
      Creates a TryExpression representing a try block with a finally block and no catch statements.
    • typeAs

      public static UnaryExpression typeAs(Expression expression, Type type)
      Creates a UnaryExpression that represents an explicit reference or boxing conversion where null is supplied if the conversion fails.
    • typeEqual

      public static TypeBinaryExpression typeEqual(Expression expression, Type type)
      Creates a TypeBinaryExpression that compares run-time type identity.
    • typeIs

      public static TypeBinaryExpression typeIs(Expression expression, Type type)
      Creates a TypeBinaryExpression.
    • unaryPlus

      public static UnaryExpression unaryPlus(Expression expression)
      Creates a UnaryExpression that represents a unary plus operation.
    • unaryPlus

      public static UnaryExpression unaryPlus(Expression expression, Method method)
      Creates a UnaryExpression that represents a unary plus operation.
    • unbox

      public static UnaryExpression unbox(Expression expression, Type type)
      Creates a UnaryExpression that represents an explicit unboxing.
    • variable

      public static ParameterExpression variable(Type type)
      Creates a ParameterExpression node that can be used to identify a parameter or a variable in an expression tree.
    • variable

      public static ParameterExpression variable(Type type, String name)
      Creates a ParameterExpression node that can be used to identify a parameter or a variable in an expression tree.
    • visitChildren

      public static Expression visitChildren(ExpressionVisitor visitor)
      Reduces the node and then calls the visitor delegate on the reduced expression. The method throws an exception if the node is not reducible.
    • while_

      public static WhileStatement while_(Expression condition, Statement body)
      Creates a WhileExpression representing a while loop.
    • declare

      public static DeclarationStatement declare(int modifiers, ParameterExpression parameter, @Nullable Expression initializer)
      Creates a statement that declares a variable.
    • declare

      public static DeclarationStatement declare(int modifiers, String name, Expression initializer)
      Creates an expression that declares and initializes a variable. No type is required; it is assumed that the variable is the same type as the initializer. You can retrieve the ParameterExpression from the DeclarationStatement.parameter field of the result.
    • statement

      public static Statement statement(@Nullable Expression expression)
      Creates a statement that executes an expression.
    • foldAnd

      public static Expression foldAnd(List<Expression> conditions)
      Combines a list of expressions using AND. Returns TRUE if the list is empty. Returns FALSE if any of the conditions are constant FALSE; otherwise returns NULL if any of the conditions are constant NULL.
    • foldOr

      public static Expression foldOr(List<Expression> conditions)
      Combines a list of expressions using OR. Returns FALSE if the list is empty. Returns TRUE if any of the conditions are constant TRUE; otherwise returns NULL if all of the conditions are constant NULL.
    • list

      public static <T> Expressions.FluentList<T> list()
      Creates an empty fluent list.
    • list

      @SafeVarargs public static <T> Expressions.FluentList<T> list(T... ts)
      Creates a fluent list with given elements.
    • list

      public static <T> Expressions.FluentList<T> list(Iterable<T> ts)
      Creates a fluent list with elements from the given collection.
    • evaluate

      public static @Nullable Object evaluate(Node node)
      Evaluates an expression and returns the result.