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, MapEntryExpression, MapExpression, MethodCallExpression, MethodPointerExpression, PostfixExpression, PrefixExpression, PropertyExpression, RangeExpression, RegexExpression, SpreadExpression, SpreadMapExpression, StaticMethodCallExpression, TernaryExpression, TupleExpression, UnaryMinusExpression, UnaryPlusExpression, VariableExpression

    public abstract class Expression
    extends AnnotatedNode

Represents a base class for expressions which evaluate as an object

Version:
  $Revision: 17114 $
Author:
  James Strachan

### Constructor Summary

Constructors
Constructor and Description
`Expression()`

### Method Summary

Methods
`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, getText, 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 Detail

#### Expression

    public Expression()

### Method Detail

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