org.codehaus.groovy.control
Class StaticImportVisitor

java.lang.Object
  extended by org.codehaus.groovy.ast.CodeVisitorSupport
      extended by org.codehaus.groovy.ast.ClassCodeVisitorSupport
          extended by org.codehaus.groovy.ast.ClassCodeExpressionTransformer
              extended by org.codehaus.groovy.control.StaticImportVisitor
All Implemented Interfaces:
ExpressionTransformer, GroovyClassVisitor, GroovyCodeVisitor

public class StaticImportVisitor
extends ClassCodeExpressionTransformer

Visitor to resolve constants and method calls from static Imports

Author:
Jochen Theodorou, Paul King

Field Summary
private  CompilationUnit compilationUnit
           
private  ClassNode currentClass
           
private  MethodNode currentMethod
           
private  Expression foundArgs
           
private  Expression foundConstant
           
private  boolean inClosure
           
private  boolean inPropertyExpression
           
private  boolean inSpecialConstructorCall
           
private  SourceUnit source
           
private  boolean stillResolving
           
 
Constructor Summary
StaticImportVisitor(CompilationUnit cu)
           
 
Method Summary
private  void addStaticVariableError(VariableExpression ve)
           
private  void checkStaticScope(PropertyExpression pe)
           
private  Expression findStaticField(ClassNode staticImportType, java.lang.String fieldName)
           
private  Expression findStaticFieldImportFromModule(java.lang.String name)
           
private  Expression findStaticMethod(ClassNode staticImportType, java.lang.String methodName, Expression args)
           
private  Expression findStaticMethodImportFromModule(Expression method, Expression args)
           
protected  SourceUnit getSourceUnit()
           
private  boolean isEnum(ClassNode node)
           
 Expression transform(Expression exp)
          Transforms the given expression into another expression
protected  Expression transformClosureExpression(ClosureExpression ce)
           
protected  Expression transformConstructorCallExpression(ConstructorCallExpression cce)
           
protected  Expression transformMethodCallExpression(MethodCallExpression mce)
           
protected  Expression transformPropertyExpression(PropertyExpression pe)
           
protected  Expression transformVariableExpression(VariableExpression ve)
           
 void visitClass(ClassNode node, SourceUnit source)
           
protected  void visitConstructorOrMethod(MethodNode node, boolean isConstructor)
           
 
Methods inherited from class org.codehaus.groovy.ast.ClassCodeExpressionTransformer
visitAnnotations, visitAssertStatement, visitCaseStatement, visitDoWhileLoop, visitExpressionStatement, visitField, visitForLoop, visitIfElse, visitProperty, visitReturnStatement, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitWhileLoop
 
Methods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport
addError, visitBlockStatement, visitBreakStatement, visitCatchStatement, visitClass, visitClassCodeContainer, visitConstructor, visitContinueStatement, visitMethod, visitStatement, visitTryCatchFinally
 
Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport
visitArgumentlistExpression, visitArrayExpression, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBooleanExpression, visitBytecodeExpression, 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

currentClass

private ClassNode currentClass

currentMethod

private MethodNode currentMethod

source

private SourceUnit source

compilationUnit

private CompilationUnit compilationUnit

stillResolving

private boolean stillResolving

inSpecialConstructorCall

private boolean inSpecialConstructorCall

inClosure

private boolean inClosure

inPropertyExpression

private boolean inPropertyExpression

foundConstant

private Expression foundConstant

foundArgs

private Expression foundArgs
Constructor Detail

StaticImportVisitor

public StaticImportVisitor(CompilationUnit cu)
Method Detail

visitClass

public void visitClass(ClassNode node,
                       SourceUnit source)

visitConstructorOrMethod

protected void visitConstructorOrMethod(MethodNode node,
                                        boolean isConstructor)
Overrides:
visitConstructorOrMethod 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

transformVariableExpression

protected Expression transformVariableExpression(VariableExpression ve)

transformMethodCallExpression

protected Expression transformMethodCallExpression(MethodCallExpression mce)

transformConstructorCallExpression

protected Expression transformConstructorCallExpression(ConstructorCallExpression cce)

transformClosureExpression

protected Expression transformClosureExpression(ClosureExpression ce)

transformPropertyExpression

protected Expression transformPropertyExpression(PropertyExpression pe)

checkStaticScope

private void checkStaticScope(PropertyExpression pe)

addStaticVariableError

private void addStaticVariableError(VariableExpression ve)

findStaticFieldImportFromModule

private Expression findStaticFieldImportFromModule(java.lang.String name)

findStaticField

private Expression findStaticField(ClassNode staticImportType,
                                   java.lang.String fieldName)

findStaticMethodImportFromModule

private Expression findStaticMethodImportFromModule(Expression method,
                                                    Expression args)

findStaticMethod

private Expression findStaticMethod(ClassNode staticImportType,
                                    java.lang.String methodName,
                                    Expression args)

getSourceUnit

protected SourceUnit getSourceUnit()
Specified by:
getSourceUnit in class ClassCodeVisitorSupport

isEnum

private boolean isEnum(ClassNode node)


Copyright © ${year} The Codehaus. All Rights Reserved.