Package org.codehaus.groovy.ast.expr

# Class Expression

java.lang.Object
org.codehaus.groovy.ast.ASTNode
org.codehaus.groovy.ast.AnnotatedNode
org.codehaus.groovy.ast.expr.Expression

All Implemented Interfaces:
  `GroovydocHolder<AnnotatedNode>`, `NodeMetaDataHandler`

Direct Known Subclasses:
  `ArrayExpression`, `BinaryExpression`, `BitwiseNegationExpression`, `BooleanExpression`, `BytecodeExpression`, `CastExpression`, `ClassExpression`, `ClosureExpression`, `ConstantExpression`, `ConstructorCallExpression`, `EmptyExpression`, `FieldExpression`, `GStringExpression`, `ListExpression`, `ListOfExpressionsExpression`, `MapEntryExpression`, `MapExpression`, `MethodCallExpression`, `MethodPointerExpression`, `PostfixExpression`, `PrefixExpression`, `PropertyExpression`, `RangeExpression`, `SpreadExpression`, `SpreadMapExpression`, `StaticMethodCallExpression`, `TemporaryVariableExpression`, `TernaryExpression`, `TupleExpression`, `UnaryMinusExpression`, `UnaryPlusExpression`, `VariableExpression`

    public abstract class Expression
    extends AnnotatedNode

Represents a base class for expressions which evaluate as an object

- ## Field Summary

  Fields
  Modifier and Type | Field | Description
  --- | --- | ---
  `static Expression[]` | `EMPTY_ARRAY` |

  ### Fields inherited from interface groovy.lang.groovydoc.GroovydocHolder

  `DOC_COMMENT`

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `Expression()` |

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `ClassNode` | `getType()` |
  `void` | `setType​(ClassNode t)` |
  `abstract Expression` | `transformExpression​(ExpressionTransformer transformer)` | Return a copy of the expression calling the transformer on any nested expressions
  `protected List<Expression>` | `transformExpressions​(List<? extends Expression> expressions, ExpressionTransformer transformer)` | Transforms the list of expressions
  `protected <T extends Expression> List<T>` | `transformExpressions​(List<? extends Expression> expressions, ExpressionTransformer transformer, Class<T> transformedType)` | Transforms the list of expressions, and checks that all transformed expressions have the given type.

  ### Methods inherited from class org.codehaus.groovy.ast.AnnotatedNode

  `addAnnotation, addAnnotations, getAnnotations, getAnnotations, getDeclaringClass, getGroovydoc, getInstance, hasNoRealSourcePosition, isSynthetic, setDeclaringClass, setHasNoRealSourcePosition, setSynthetic`

  ### Methods inherited from class org.codehaus.groovy.ast.ASTNode

  `copyNodeMetaData, getColumnNumber, getLastColumnNumber, getLastLineNumber, getLineNumber, getMetaDataMap, getText, setColumnNumber, setLastColumnNumber, setLastLineNumber, setLineNumber, setMetaDataMap, setSourcePosition, visit`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface org.codehaus.groovy.ast.NodeMetaDataHandler

  `copyNodeMetaData, getNodeMetaData, getNodeMetaData, getNodeMetaData, putNodeMetaData, removeNodeMetaData, setNodeMetaData`

- ## Field Details

  - ### EMPTY_ARRAY

    public static final Expression[] EMPTY_ARRAY

- ## Constructor Details

  - ### Expression

    public Expression()

- ## Method Details

  - ### transformExpression

    public abstract Expression transformExpression​(ExpressionTransformer transformer)
    Return a copy of the expression calling the transformer on any nested expressions
    Parameters:
      `transformer` -

  - ### transformExpressions

    protected List<Expression> transformExpressions​(List<? extends Expression> expressions, ExpressionTransformer transformer)
    Transforms the list of expressions
    Returns:
      a new list of transformed expressions

  - ### transformExpressions

    protected <T extends Expression> List<T> transformExpressions​(List<? extends Expression> expressions, ExpressionTransformer transformer, Class<T> transformedType)
    Transforms the list of expressions, and checks that all transformed expressions have the given type.
    Returns:
      a new list of transformed expressions

  - ### getType

    public ClassNode getType()

  - ### setType

    public void setType​(ClassNode t)