org.codehaus.groovy.control
Class ResolveVisitor
java.lang.Object
org.codehaus.groovy.ast.CodeVisitorSupport
org.codehaus.groovy.ast.ClassCodeVisitorSupport
org.codehaus.groovy.ast.ClassCodeExpressionTransformer
org.codehaus.groovy.control.ResolveVisitor
- All Implemented Interfaces:
- ExpressionTransformer, GroovyClassVisitor, GroovyCodeVisitor
- Direct Known Subclasses:
- JavaAwareResolveVisitor
public class ResolveVisitor
- extends ClassCodeExpressionTransformer
Visitor to resolve Types and convert VariableExpression to
ClassExpressions if needed. The ResolveVisitor will try to
find the Class for a ClassExpression and prints an error if
it fails to do so. Constructions like C[], foo as C, (C) foo
will force creation of a ClassExpression for C
Note: the method to start the resolving is startResolving(ClassNode, SourceUnit).
- Author:
- Jochen Theodorou
Methods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport |
addError, visitBreakStatement, visitClassCodeContainer, visitConstructor, visitContinueStatement, visitImports, visitMethod, visitPackage, visitStatement, visitTryCatchFinally, visitVariableExpression |
Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport |
visitArgumentlistExpression, visitArrayExpression, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBooleanExpression, visitBytecodeExpression, visitCastExpression, visitClassExpression, visitClosureExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitDeclarationExpression, visitEmptyStatement, visitFieldExpression, visitGStringExpression, visitListExpression, visitListOfExpressions, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitRegexExpression, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitTernaryExpression, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DEFAULT_IMPORTS
public static final String[] DEFAULT_IMPORTS
ResolveVisitor
public ResolveVisitor(CompilationUnit cu)
startResolving
public void startResolving(ClassNode node,
SourceUnit source)
visitConstructorOrMethod
protected void visitConstructorOrMethod(MethodNode node,
boolean isConstructor)
- Overrides:
visitConstructorOrMethod
in class ClassCodeExpressionTransformer
visitField
public void visitField(FieldNode node)
- Specified by:
visitField
in interface GroovyClassVisitor
- Overrides:
visitField
in class ClassCodeExpressionTransformer
visitProperty
public void visitProperty(PropertyNode node)
- Specified by:
visitProperty
in interface GroovyClassVisitor
- Overrides:
visitProperty
in class ClassCodeExpressionTransformer
transform
public Expression transform(Expression exp)
- Description copied from interface:
ExpressionTransformer
- Transforms the given expression into another expression
- Specified by:
transform
in interface ExpressionTransformer
- Overrides:
transform
in class ClassCodeExpressionTransformer
transformPropertyExpression
protected Expression transformPropertyExpression(PropertyExpression pe)
transformVariableExpression
protected Expression transformVariableExpression(VariableExpression ve)
transformBinaryExpression
protected Expression transformBinaryExpression(BinaryExpression be)
transformClosureExpression
protected Expression transformClosureExpression(ClosureExpression ce)
transformConstructorCallExpression
protected Expression transformConstructorCallExpression(ConstructorCallExpression cce)
transformMethodCallExpression
protected Expression transformMethodCallExpression(MethodCallExpression mce)
transformDeclarationExpression
protected Expression transformDeclarationExpression(DeclarationExpression de)
transformAnnotationConstantExpression
protected Expression transformAnnotationConstantExpression(AnnotationConstantExpression ace)
visitAnnotations
public void visitAnnotations(AnnotatedNode node)
- Overrides:
visitAnnotations
in class ClassCodeExpressionTransformer
visitClass
public void visitClass(ClassNode node)
- Specified by:
visitClass
in interface GroovyClassVisitor
- Overrides:
visitClass
in class ClassCodeVisitorSupport
visitCatchStatement
public void visitCatchStatement(CatchStatement cs)
- Specified by:
visitCatchStatement
in interface GroovyCodeVisitor
- Overrides:
visitCatchStatement
in class ClassCodeVisitorSupport
visitForLoop
public void visitForLoop(ForStatement forLoop)
- Specified by:
visitForLoop
in interface GroovyCodeVisitor
- Overrides:
visitForLoop
in class ClassCodeExpressionTransformer
visitBlockStatement
public void visitBlockStatement(BlockStatement block)
- Specified by:
visitBlockStatement
in interface GroovyCodeVisitor
- Overrides:
visitBlockStatement
in class ClassCodeVisitorSupport
getSourceUnit
protected SourceUnit getSourceUnit()
- Specified by:
getSourceUnit
in class ClassCodeVisitorSupport