Package 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 CNote: the method to start the resolving is startResolving(ClassNode, SourceUnit).
-
-
Field Summary
Fields Modifier and Type Field Description static String[]
DEFAULT_IMPORTS
static String[]
EMPTY_STRING_ARRAY
static String
QUESTION_MARK
-
Constructor Summary
Constructors Constructor Description ResolveVisitor(CompilationUnit compilationUnit)
-
Method Summary
-
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 classClassCodeVisitorSupport
-
visitConstructorOrMethod
protected void visitConstructorOrMethod(MethodNode node, boolean isConstructor)
- Overrides:
visitConstructorOrMethod
in classClassCodeExpressionTransformer
-
visitField
public void visitField(FieldNode node)
Description copied from interface:GroovyClassVisitor
Visit a FieldNode.- Specified by:
visitField
in interfaceGroovyClassVisitor
- Overrides:
visitField
in classClassCodeExpressionTransformer
-
visitProperty
public void visitProperty(PropertyNode node)
Description copied from interface:GroovyClassVisitor
Visit a PropertyNode.- Specified by:
visitProperty
in interfaceGroovyClassVisitor
- Overrides:
visitProperty
in classClassCodeExpressionTransformer
-
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 interfaceExpressionTransformer
- Overrides:
transform
in classClassCodeExpressionTransformer
-
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 classClassCodeVisitorSupport
-
visitClass
public void visitClass(ClassNode node)
Description copied from interface:GroovyClassVisitor
Visit a ClassNode.- Specified by:
visitClass
in interfaceGroovyClassVisitor
- Overrides:
visitClass
in classClassCodeVisitorSupport
-
visitCatchStatement
public void visitCatchStatement(CatchStatement cs)
- Specified by:
visitCatchStatement
in interfaceGroovyCodeVisitor
- Overrides:
visitCatchStatement
in classClassCodeVisitorSupport
-
visitForLoop
public void visitForLoop(ForStatement forLoop)
- Specified by:
visitForLoop
in interfaceGroovyCodeVisitor
- Overrides:
visitForLoop
in classClassCodeExpressionTransformer
-
visitBlockStatement
public void visitBlockStatement(BlockStatement block)
- Specified by:
visitBlockStatement
in interfaceGroovyCodeVisitor
- Overrides:
visitBlockStatement
in classClassCodeVisitorSupport
-
-