Package org.codehaus.groovy.classgen.asm

# Class OptimizingStatementWriter

java.lang.Object
org.codehaus.groovy.classgen.asm.StatementWriter
org.codehaus.groovy.classgen.asm.OptimizingStatementWriter

public class OptimizingStatementWriter extends StatementWriter
A class to write out the optimized statements

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`OptimizingStatementWriter.ClassNodeSkip`
`static class`
`OptimizingStatementWriter.StatementMeta`

## Constructor Summary

Constructors
Constructor
Description
`OptimizingStatementWriter(WriterController controller)`

## Method Summary

Modifier and Type
Method
Description
`static void`
`setNodeMeta(TypeChooser chooser, ClassNode classNode)`
`void`
`writeBlockStatement(BlockStatement statement)`
`void`
`writeDoWhileLoop(DoWhileStatement statement)`
`void`
`writeExpressionStatement(ExpressionStatement statement)`
`protected void`
`writeForInLoop(ForStatement statement)`
`protected void`
`writeForLoopWithClosureList(ForStatement statement)`
`void`
`writeIfElse(IfStatement statement)`
`protected void`
`writeIteratorHasNext(org.objectweb.asm.MethodVisitor mv)`
`protected void`
`writeIteratorNext(org.objectweb.asm.MethodVisitor mv)`
`void`
`writeReturn(ReturnStatement statement)`
`void`
`writeWhileLoop(WhileStatement statement)`

### Methods inherited from class org.codehaus.groovy.classgen.asm.StatementWriter

`writeAssert, writeBreak, writeCaseStatement, writeContinue, writeForStatement, writeStatementLabel, writeSwitch, writeSynchronized, writeThrow, writeTryCatchFinally`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### OptimizingStatementWriter

public OptimizingStatementWriter(WriterController controller)

## Method Details

### writeBlockStatement

public void writeBlockStatement(BlockStatement statement)

Overrides:
  `writeBlockStatement` in class `StatementWriter`

### writeDoWhileLoop

public void writeDoWhileLoop(DoWhileStatement statement)

Overrides:
  `writeDoWhileLoop` in class `StatementWriter`

### writeIteratorHasNext

protected void writeIteratorHasNext(org.objectweb.asm.MethodVisitor mv)

Overrides:
  `writeIteratorHasNext` in class `StatementWriter`

### writeIteratorNext

protected void writeIteratorNext(org.objectweb.asm.MethodVisitor mv)

Overrides:
  `writeIteratorNext` in class `StatementWriter`

### writeForInLoop

protected void writeForInLoop(ForStatement statement)

Overrides:
  `writeForInLoop` in class `StatementWriter`

### writeForLoopWithClosureList

protected void writeForLoopWithClosureList(ForStatement statement)

Overrides:
  `writeForLoopWithClosureList` in class `StatementWriter`

### writeWhileLoop

public void writeWhileLoop(WhileStatement statement)

Overrides:
  `writeWhileLoop` in class `StatementWriter`

### writeIfElse

public void writeIfElse(IfStatement statement)

Overrides:
  `writeIfElse` in class `StatementWriter`

### writeReturn

public void writeReturn(ReturnStatement statement)

Overrides:
  `writeReturn` in class `StatementWriter`

### writeExpressionStatement

public void writeExpressionStatement(ExpressionStatement statement)

Overrides:
  `writeExpressionStatement` in class `StatementWriter`

### setNodeMeta

public static void setNodeMeta(TypeChooser chooser, ClassNode classNode)