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

Field Summary
`static String[]` `DEFAULT_IMPORTS`

Constructor Summary
`ResolveVisitor(CompilationUnit cu)`

Method Summary
`protected SourceUnit` `getSourceUnit()`
`void` `startResolving(ClassNode node, SourceUnit source)`
`Expression` `transform(Expression exp)` Transforms the given expression into another expression
`protected Expression` `transformAnnotationConstantExpression(AnnotationConstantExpression ace)`
`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` `visitBlockStatement(BlockStatement block)`
`void` `visitCatchStatement(CatchStatement cs)`
`void` `visitClass(ClassNode node)`
`protected void` `visitConstructorOrMethod(MethodNode node, boolean isConstructor)`
`void` `visitField(FieldNode node)`
`void` `visitForLoop(ForStatement forLoop)`
`void` `visitProperty(PropertyNode node)`

Methods inherited from class org.codehaus.groovy.ast.ClassCodeExpressionTransformer
`visitAssertStatement, visitCaseStatement, visitDoWhileLoop, visitExpressionStatement, visitIfElse, visitReturnStatement, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitWhileLoop`

Methods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport
`addError, visitBreakStatement, visitClassCodeContainer, visitConstructor, visitContinueStatement, visitMethod, visitStatement, visitTryCatchFinally`

Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport

`visitArgumentlistExpression, visitArrayExpression, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBooleanExpression, visitCastExpression, visitClassExpression, visitClosureExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitDeclarationExpression, visitFieldExpression, visitGStringExpression, visitListExpression, visitListOfExpressions, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitRegexExpression, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitTernaryExpression, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpression`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### DEFAULT_IMPORTS

    public static final String[] DEFAULT_IMPORTS

Constructor Detail

### ResolveVisitor

    public ResolveVisitor(CompilationUnit cu)

Method Detail

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

Copyright © 2003-2008 The Codehaus. All rights reserved.