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.