org.codehaus.groovy.control
Class OptimizerVisitor

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.OptimizerVisitor
All Implemented Interfaces:
ExpressionTransformer, GroovyClassVisitor, GroovyCodeVisitor

public class OptimizerVisitor
extends ClassCodeExpressionTransformer

Visitor to produce several optimizations - to replace numbered constants with references to static fields

Author:
Alex Tkachman

Field Summary
private  java.util.Map const2Var
           
private  ClassNode currentClass
           
private  java.util.List missingFields
           
private  SourceUnit source
           
 
Constructor Summary
OptimizerVisitor(CompilationUnit cu)
           
 
Method Summary
private  void addMissingFields()
           
protected  SourceUnit getSourceUnit()
           
private  void setConstField(ConstantExpression constantExpression)
           
 Expression transform(Expression exp)
          Transforms the given expression into another expression
 void visitClass(ClassNode node, SourceUnit source)
           
 void visitClosureExpression(ClosureExpression expression)
           
 
Methods inherited from class org.codehaus.groovy.ast.ClassCodeExpressionTransformer
visitAnnotations, visitAssertStatement, visitCaseStatement, visitConstructorOrMethod, 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, 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

source

private SourceUnit source

const2Var

private java.util.Map const2Var

missingFields

private java.util.List missingFields
Constructor Detail

OptimizerVisitor

public OptimizerVisitor(CompilationUnit cu)
Method Detail

visitClass

public void visitClass(ClassNode node,
                       SourceUnit source)

addMissingFields

private void addMissingFields()

setConstField

private void setConstField(ConstantExpression constantExpression)

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

getSourceUnit

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

visitClosureExpression

public void visitClosureExpression(ClosureExpression expression)
Specified by:
visitClosureExpression in interface GroovyCodeVisitor
Overrides:
visitClosureExpression in class CodeVisitorSupport


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