Class Expression

java.lang.Object
org.apache.calcite.linq4j.tree.AbstractNode
org.apache.calcite.linq4j.tree.Expression
All Implemented Interfaces:
Node
Direct Known Subclasses:
BinaryExpression, ConstantExpression, DefaultExpression, DynamicExpression, IndexExpression, InvocationExpression, LambdaExpression, ListInitExpression, MemberExpression, MemberInitExpression, MethodCallExpression, NewArrayExpression, NewExpression, ParameterExpression, TernaryExpression, TypeBinaryExpression, UnaryExpression

public abstract class Expression extends AbstractNode
Analogous to LINQ's System.Linq.Expression.
  • Constructor Details

    • Expression

      protected Expression(ExpressionType nodeType, Type type)
      Creates an Expression.

      The type of the expression may, at the caller's discretion, be a regular class (because Class implements Type) or it may be a different implementation that retains information about type parameters.

      Parameters:
      nodeType - Node type
      type - Type of the expression
  • Method Details

    • accept

      public abstract Expression accept(Shuttle shuttle)
      Specified by:
      accept in interface Node
      Overrides:
      accept in class AbstractNode
    • canReduce

      public boolean canReduce()
      Indicates that the node can be reduced to a simpler node. If this returns true, Reduce() can be called to produce the reduced form.