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

- - ### Nested Class Summary

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

  - ### Field Summary

    - ### Fields inherited from class org.codehaus.groovy.classgen.asm.StatementWriter

      `controller`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `OptimizingStatementWriter​(WriterController controller)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    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, 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)