Package org.codehaus.groovy.control

# Class OptimizerVisitor

java.lang.Object
org.codehaus.groovy.ast.CodeVisitorSupport
org.codehaus.groovy.ast.ClassCodeVisitorSupport
org.codehaus.groovy.ast.ClassCodeExpressionTransformer
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
- remove superfluous references to GroovyObject interface

## Constructor Summary

Constructors
Constructor
Description
`OptimizerVisitor(CompilationUnit cu)`

## Method Summary

Modifier and Type
Method
Description
`protected SourceUnit`
`getSourceUnit()`
`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, visitDeclarationExpression, visitImports, visitMethod, visitObjectInitializerStatements, visitPackage, visitStatement, visitTryCatchFinally`

### Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport

`visitArgumentlistExpression, visitArrayExpression, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBooleanExpression, visitBytecodeExpression, visitCastExpression, visitClassExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitEmptyStatement, visitFieldExpression, visitGStringExpression, visitListExpression, visitListOfExpressions, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, 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`

## Constructor Details

### OptimizerVisitor

public OptimizerVisitor(CompilationUnit cu)

## Method Details

### visitClass

public void visitClass(ClassNode node, SourceUnit source)

### 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`