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

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

Author:
  James Strachan

## 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, hasNoRealSourcePosition, isSynthetic, setDeclaringClass, setHasNoRealSourcePosition, setSynthetic`

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

`copyNodeMetaData, getColumnNumber, getLastColumnNumber, getLastLineNumber, getLineNumber, getNodeMetaData, getNodeMetaData, getText, putNodeMetaData, removeNodeMetaData, setColumnNumber, setLastColumnNumber, setLastLineNumber, setLineNumber, setNodeMetaData, setSourcePosition, visit`

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

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

## 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)