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
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 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected SourceUnitprotected booleanprotected booleanresolve(ClassNode type, boolean testModuleImports, boolean testDefaultImports, boolean testStaticInnerClasses) protected booleanprotected booleanprotected booleanresolveFromDefaultImports(ClassNode type, String[] packagePrefixes) protected booleanresolveFromModule(ClassNode type, boolean testModuleImports) protected booleanprotected booleanresolveNestedClass(ClassNode type) protected booleanresolveToInner(ClassNode type) protected booleanresolveToOuter(ClassNode type) voidsetClassNodeResolver(ClassNodeResolver classNodeResolver) voidstartResolving(ClassNode node, SourceUnit source) transform(Expression exp) NOTE: This method does not visit Expressions within Closures, for performance and historical reasons.protected Expressionprotected Expressionprotected Expressionprotected Expressionprotected Expressionprotected Expressionprotected Expressionprotected Expressionprotected voidvoidvoidvoidvisitClass(ClassNode node) Visit a ClassNode.protected voidvisitConstructorOrMethod(MethodNode node, boolean isConstructor) voidvisitField(FieldNode node) Visit a FieldNode.voidvisitForLoop(ForStatement forLoop) voidvisitProperty(PropertyNode node) Visit a PropertyNode.Methods inherited from class org.codehaus.groovy.ast.ClassCodeExpressionTransformer
setSourcePosition, visitAssertStatement, visitCaseStatement, visitClosureExpression, visitDoWhileLoop, visitExpressionStatement, visitIfElse, visitReturnStatement, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitWhileLoopMethods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport
addError, visitAnnotations, visitAnnotations, visitBreakStatement, visitClassCodeContainer, visitConstructor, visitContinueStatement, visitDeclarationExpression, visitImports, visitMethod, visitObjectInitializerStatements, visitPackage, visitStatement, visitTryCatchFinallyMethods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport
afterSwitchCaseStatementsVisited, afterSwitchConditionExpressionVisited, visitArgumentlistExpression, visitArrayExpression, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBooleanExpression, visitBytecodeExpression, visitCastExpression, visitClassExpression, 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, visitVariableExpressionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.codehaus.groovy.ast.GroovyCodeVisitor
visit, visit, visitEmptyExpression, visitListOfExpressions
-
Field Details
-
DEFAULT_IMPORTS
-
EMPTY_STRING_ARRAY
-
QUESTION_MARK
- See Also:
-
-
Constructor Details
-
ResolveVisitor
-
-
Method Details
-
setClassNodeResolver
-
startResolving
-
getSourceUnit
- Specified by:
getSourceUnitin classClassCodeVisitorSupport
-
visitField
Description copied from interface:GroovyClassVisitorVisit a FieldNode.- Specified by:
visitFieldin interfaceGroovyClassVisitor- Overrides:
visitFieldin classClassCodeExpressionTransformer
-
visitProperty
Description copied from interface:GroovyClassVisitorVisit a PropertyNode.- Specified by:
visitPropertyin interfaceGroovyClassVisitor- Overrides:
visitPropertyin classClassCodeExpressionTransformer
-
visitConstructorOrMethod
- Overrides:
visitConstructorOrMethodin classClassCodeExpressionTransformer
-
resolveToInner
-
resolve
-
resolve
protected boolean resolve(ClassNode type, boolean testModuleImports, boolean testDefaultImports, boolean testStaticInnerClasses) -
resolveNestedClass
-
resolveFromStaticInnerClasses
-
resolveFromDefaultImports
-
resolveFromDefaultImports
-
resolveFromCompileUnit
-
resolveFromModule
-
resolveToOuter
-
transform
Description copied from class:ClassCodeExpressionTransformerNOTE: This method does not visit Expressions within Closures, for performance and historical reasons. If you want those Expressions to be visited, you can do this:public class YourTransformer extends ClassCodeExpressionTransformer { ... @Override public Expression transform(final Expression expr) { if (expr instanceof ClosureExpression) { expr.visit(this); return expr; } // ... } }- Specified by:
transformin interfaceExpressionTransformer- Overrides:
transformin classClassCodeExpressionTransformer
-
transformPropertyExpression
-
transformVariableExpression
-
transformBinaryExpression
-
transformClosureExpression
-
transformConstructorCallExpression
-
transformMethodCallExpression
-
transformDeclarationExpression
-
transformAnnotationConstantExpression
-
visitAnnotation
- Overrides:
visitAnnotationin classClassCodeExpressionTransformer
-
visitClass
Description copied from interface:GroovyClassVisitorVisit a ClassNode.- Specified by:
visitClassin interfaceGroovyClassVisitor- Overrides:
visitClassin classClassCodeVisitorSupport
-
visitCatchStatement
- Specified by:
visitCatchStatementin interfaceGroovyCodeVisitor- Overrides:
visitCatchStatementin classClassCodeVisitorSupport
-
visitForLoop
- Specified by:
visitForLoopin interfaceGroovyCodeVisitor- Overrides:
visitForLoopin classClassCodeExpressionTransformer
-
visitBlockStatement
- Specified by:
visitBlockStatementin interfaceGroovyCodeVisitor- Overrides:
visitBlockStatementin classClassCodeVisitorSupport
-