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_IMPORTSstatic String[]EMPTY_STRING_ARRAYstatic StringQUESTION_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:
getSourceUnitin classClassCodeVisitorSupport
-
visitConstructorOrMethod
protected void visitConstructorOrMethod(MethodNode node, boolean isConstructor)
- Overrides:
visitConstructorOrMethodin classClassCodeExpressionTransformer
-
visitField
public void visitField(FieldNode node)
Description copied from interface:GroovyClassVisitorVisit a FieldNode.- Specified by:
visitFieldin interfaceGroovyClassVisitor- Overrides:
visitFieldin classClassCodeExpressionTransformer
-
visitProperty
public void visitProperty(PropertyNode node)
Description copied from interface:GroovyClassVisitorVisit a PropertyNode.- Specified by:
visitPropertyin interfaceGroovyClassVisitor- Overrides:
visitPropertyin 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:ExpressionTransformerTransforms the given expression into another expression- Specified by:
transformin interfaceExpressionTransformer- Overrides:
transformin 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:
visitAnnotationsin classClassCodeVisitorSupport
-
visitClass
public void visitClass(ClassNode node)
Description copied from interface:GroovyClassVisitorVisit a ClassNode.- Specified by:
visitClassin interfaceGroovyClassVisitor- Overrides:
visitClassin classClassCodeVisitorSupport
-
visitCatchStatement
public void visitCatchStatement(CatchStatement cs)
- Specified by:
visitCatchStatementin interfaceGroovyCodeVisitor- Overrides:
visitCatchStatementin classClassCodeVisitorSupport
-
visitForLoop
public void visitForLoop(ForStatement forLoop)
- Specified by:
visitForLoopin interfaceGroovyCodeVisitor- Overrides:
visitForLoopin classClassCodeExpressionTransformer
-
visitBlockStatement
public void visitBlockStatement(BlockStatement block)
- Specified by:
visitBlockStatementin interfaceGroovyCodeVisitor- Overrides:
visitBlockStatementin classClassCodeVisitorSupport
-
-