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, ErrorCollecting
  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).

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String[]` | `DEFAULT_IMPORTS`
    `static String[]` | `EMPTY_STRING_ARRAY`
    `static String` | `QUESTION_MARK`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ResolveVisitor(CompilationUnit compilationUnit)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected SourceUnit` | `getSourceUnit()`
    `protected boolean` | `resolve(ClassNode type)`
    `protected boolean` | `resolve(ClassNode type, boolean testModuleImports, boolean testDefaultImports, boolean testStaticInnerClasses)`
    `protected boolean` | `resolveFromCompileUnit(ClassNode type)`
    `protected boolean` | `resolveFromDefaultImports(ClassNode type)`
    `protected boolean` | `resolveFromDefaultImports(ClassNode type, String[] packagePrefixes)`
    `protected boolean` | `resolveFromModule(ClassNode type, boolean testModuleImports)`
    `protected boolean` | `resolveFromStaticInnerClasses(ClassNode type)`
    `protected boolean` | `resolveNestedClass(ClassNode type)`
    `protected boolean` | `resolveToInner(ClassNode type)`
    `protected boolean` | `resolveToOuter(ClassNode type)`
    `void` | `setClassNodeResolver(ClassNodeResolver classNodeResolver)`
    `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)` Visit a ClassNode.
    `protected void` | `visitConstructorOrMethod(MethodNode node, boolean isConstructor)`
    `void` | `visitField(FieldNode node)` Visit a FieldNode.
    `void` | `visitForLoop(ForStatement forLoop)`
    `void` | `visitProperty(PropertyNode node)` Visit a PropertyNode.

    - ### Methods inherited from class org.codehaus.groovy.ast.ClassCodeExpressionTransformer

      `setSourcePosition, visitAnnotation, visitAssertStatement, visitCaseStatement, visitDoWhileLoop, visitExpressionStatement, visitIfElse, visitReturnStatement, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitWhileLoop`

    - ### Methods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport

      `addError, visitBreakStatement, visitClassCodeContainer, visitConstructor, visitContinueStatement, visitDeclarationExpression, visitImports, visitMethod, visitObjectInitializerStatements, visitPackage, visitStatement, visitTryCatchFinally`

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

      `afterSwitchConditionExpressionVisited, visitArgumentlistExpression, visitArrayExpression, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBooleanExpression, visitBytecodeExpression, visitCastExpression, visitClassExpression, visitClosureExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitEmptyStatement, visitFieldExpression, visitGStringExpression, visitLambdaExpression, visitListExpression, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitMethodReferenceExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, 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`

    - ### Methods inherited from interface org.codehaus.groovy.ast.GroovyCodeVisitor

      `visitEmptyExpression, visitListOfExpressions`

- - ### Field Detail

    - #### DEFAULT_IMPORTS

          public static final String[] DEFAULT_IMPORTS

    - #### QUESTION_MARK

          public static final String QUESTION_MARK

      See Also:
        Constant Field Values

    - #### EMPTY_STRING_ARRAY

          public static final String[] EMPTY_STRING_ARRAY

  - ### Constructor Detail

    - #### ResolveVisitor

          public ResolveVisitor(CompilationUnit compilationUnit)

  - ### Method Detail

    - #### setClassNodeResolver

          public void setClassNodeResolver(ClassNodeResolver classNodeResolver)

    - #### startResolving

          public void startResolving(ClassNode node,
                                     SourceUnit source)

    - #### getSourceUnit

          protected SourceUnit getSourceUnit()

      Specified by:
        `getSourceUnit` in class `ClassCodeVisitorSupport`

    - #### visitConstructorOrMethod

          protected void visitConstructorOrMethod(MethodNode node,
                                                  boolean isConstructor)

      Overrides:
        `visitConstructorOrMethod` in class `ClassCodeExpressionTransformer`

    - #### visitField

          public void visitField(FieldNode node)

      Description copied from interface: `GroovyClassVisitor`
      Visit a FieldNode.
      Specified by:
        `visitField` in interface `GroovyClassVisitor`
      Overrides:
        `visitField` in class `ClassCodeExpressionTransformer`

    - #### visitProperty

          public void visitProperty(PropertyNode node)

      Description copied from interface: `GroovyClassVisitor`
      Visit a PropertyNode.
      Specified by:
        `visitProperty` in interface `GroovyClassVisitor`
      Overrides:
        `visitProperty` in class `ClassCodeExpressionTransformer`

    - #### resolveToInner

          protected boolean resolveToInner(ClassNode type)

    - #### resolve

          protected boolean resolve(ClassNode type)

    - #### resolve

          protected boolean resolve(ClassNode type,
                                    boolean testModuleImports,
                                    boolean testDefaultImports,
                                    boolean testStaticInnerClasses)

    - #### resolveNestedClass

          protected boolean resolveNestedClass(ClassNode type)

    - #### resolveFromStaticInnerClasses

          protected boolean resolveFromStaticInnerClasses(ClassNode type)

    - #### resolveFromDefaultImports

          protected boolean resolveFromDefaultImports(ClassNode type)

    - #### resolveFromDefaultImports

          protected boolean resolveFromDefaultImports(ClassNode type,
                                                      String[] packagePrefixes)

    - #### resolveFromCompileUnit

          protected boolean resolveFromCompileUnit(ClassNode type)

    - #### resolveFromModule

          protected boolean resolveFromModule(ClassNode type,
                                              boolean testModuleImports)

    - #### resolveToOuter

          protected boolean resolveToOuter(ClassNode type)

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

    - #### visitClass

          public void visitClass(ClassNode node)

      Description copied from interface: `GroovyClassVisitor`
      Visit a ClassNode.
      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`