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

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `OptimizingStatementWriter(WriterController controller)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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 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)