org.codehaus.groovy.control
Class ResolveVisitor

java.lang.Object
  extended by org.codehaus.groovy.ast.CodeVisitorSupport
      extended by org.codehaus.groovy.control.ResolveVisitor
All Implemented Interfaces:
ExpressionTransformer, GroovyClassVisitor, GroovyCodeVisitor

public class ResolveVisitor
extends CodeVisitorSupport
implements ExpressionTransformer, GroovyClassVisitor

Visitor to resolve Types and convert VariableExpression to ClassExpressions if needed. Note: the method to start the resolving is @see ResolveVisitor#startResolving(ClassNode, SourceUnit).

Author:
Jochen Theodorou

Constructor Summary
ResolveVisitor(CompilationUnit cu)
           
 
Method Summary
 void startResolving(ClassNode node, SourceUnit source)
           
 Expression transform(Expression exp)
          Transforms the given expression into another expression
protected  Expression transformBinaryExpression(BinaryExpression be)
           
protected  Expression transformClosureExpression(ClosureExpression ce)
           
protected  Expression transformConstructorCallExpression(ConstructorCallExpression cce)
           
protected  Expression transformDeclarationExpression(DeclarationExpression de)
           
protected  Expression transformMethodCallExpression(MethodCallExpression mce)
           
protected  Expression transformPropertyExpression(PropertyExpression pe)
           
protected  Expression transformVariableExpression(VariableExpression ve)
           
 void visitAnnotations(AnnotatedNode node)
           
 void visitAssertStatement(AssertStatement as)
           
 void visitCaseStatement(CaseStatement statement)
           
 void visitCatchStatement(CatchStatement cs)
           
 void visitClass(ClassNode node)
           
 void visitConstructor(ConstructorNode node)
           
 void visitDoWhileLoop(DoWhileStatement loop)
           
 void visitExpressionStatement(ExpressionStatement es)
           
 void visitField(FieldNode node)
           
 void visitForLoop(ForStatement forLoop)
           
 void visitIfElse(IfStatement ifElse)
           
 void visitMethod(MethodNode node)
           
 void visitProperty(PropertyNode node)
           
 void visitReturnStatement(ReturnStatement statement)
           
 void visitSwitch(SwitchStatement statement)
           
 void visitSynchronizedStatement(SynchronizedStatement sync)
           
 void visitThrowStatement(ThrowStatement ts)
           
 void visitWhileLoop(WhileStatement loop)
           
 
Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport
visitArrayExpression, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegExpression, visitBlockStatement, visitBooleanExpression, visitBreakStatement, visitCastExpression, visitClassExpression, visitClosureExpression, visitConstantExpression, visitConstructorCallExpression, visitContinueStatement, visitDeclarationExpression, visitFieldExpression, visitGStringExpression, visitListExpression, visitListOfExpressions, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitNegationExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitRegexExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitTernaryExpression, visitTryCatchFinally, visitTupleExpression, visitVariableExpression
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ResolveVisitor

public ResolveVisitor(CompilationUnit cu)
Method Detail

startResolving

public void startResolving(ClassNode node,
                           SourceUnit source)

visitConstructor

public void visitConstructor(ConstructorNode node)
Specified by:
visitConstructor in interface GroovyClassVisitor

visitSwitch

public void visitSwitch(SwitchStatement statement)
Specified by:
visitSwitch in interface GroovyCodeVisitor
Overrides:
visitSwitch in class CodeVisitorSupport

visitMethod

public void visitMethod(MethodNode node)
Specified by:
visitMethod in interface GroovyClassVisitor

visitField

public void visitField(FieldNode node)
Specified by:
visitField in interface GroovyClassVisitor

visitProperty

public void visitProperty(PropertyNode node)
Specified by:
visitProperty in interface GroovyClassVisitor

visitIfElse

public void visitIfElse(IfStatement ifElse)
Specified by:
visitIfElse in interface GroovyCodeVisitor
Overrides:
visitIfElse in class CodeVisitorSupport

transform

public Expression transform(Expression exp)
Description copied from interface: ExpressionTransformer
Transforms the given expression into another expression

Specified by:
transform in interface ExpressionTransformer

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)

visitAnnotations

public void visitAnnotations(AnnotatedNode node)

visitClass

public void visitClass(ClassNode node)
Specified by:
visitClass in interface GroovyClassVisitor

visitReturnStatement

public void visitReturnStatement(ReturnStatement statement)
Specified by:
visitReturnStatement in interface GroovyCodeVisitor
Overrides:
visitReturnStatement in class CodeVisitorSupport

visitAssertStatement

public void visitAssertStatement(AssertStatement as)
Specified by:
visitAssertStatement in interface GroovyCodeVisitor
Overrides:
visitAssertStatement in class CodeVisitorSupport

visitCaseStatement

public void visitCaseStatement(CaseStatement statement)
Specified by:
visitCaseStatement in interface GroovyCodeVisitor
Overrides:
visitCaseStatement in class CodeVisitorSupport

visitCatchStatement

public void visitCatchStatement(CatchStatement cs)
Specified by:
visitCatchStatement in interface GroovyCodeVisitor
Overrides:
visitCatchStatement in class CodeVisitorSupport

visitDoWhileLoop

public void visitDoWhileLoop(DoWhileStatement loop)
Specified by:
visitDoWhileLoop in interface GroovyCodeVisitor
Overrides:
visitDoWhileLoop in class CodeVisitorSupport

visitForLoop

public void visitForLoop(ForStatement forLoop)
Specified by:
visitForLoop in interface GroovyCodeVisitor
Overrides:
visitForLoop in class CodeVisitorSupport

visitSynchronizedStatement

public void visitSynchronizedStatement(SynchronizedStatement sync)
Specified by:
visitSynchronizedStatement in interface GroovyCodeVisitor
Overrides:
visitSynchronizedStatement in class CodeVisitorSupport

visitThrowStatement

public void visitThrowStatement(ThrowStatement ts)
Specified by:
visitThrowStatement in interface GroovyCodeVisitor
Overrides:
visitThrowStatement in class CodeVisitorSupport

visitWhileLoop

public void visitWhileLoop(WhileStatement loop)
Specified by:
visitWhileLoop in interface GroovyCodeVisitor
Overrides:
visitWhileLoop in class CodeVisitorSupport

visitExpressionStatement

public void visitExpressionStatement(ExpressionStatement es)
Specified by:
visitExpressionStatement in interface GroovyCodeVisitor
Overrides:
visitExpressionStatement in class CodeVisitorSupport


Copyright © 2003-2010 The Codehaus. All Rights Reserved.