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
`static class` `OptimizingStatementWriter.ClassNodeSkip`
`static class` `OptimizingStatementWriter.StatementMeta`

### Constructor Summary

Constructors
Constructor and Description
`OptimizingStatementWriter(WriterController controller)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`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 Detail

#### OptimizingStatementWriter

    public OptimizingStatementWriter(WriterController controller)

### Method Detail

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