Package org.codehaus.groovy.classgen.asm

## Class StatementWriter

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

- Direct Known Subclasses:
    `OptimizingStatementWriter`, `StaticTypesStatementWriter`

      public class StatementWriter
      extends java.lang.Object

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected WriterController` | `controller` |

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `writeAssert​(AssertStatement statement)` |
    `void` | `writeBlockStatement​(BlockStatement block)` |
    `void` | `writeBreak​(BreakStatement statement)` |
    `protected void` | `writeCaseStatement​(CaseStatement statement, int switchVariableIndex, org.objectweb.asm.Label thisLabel, org.objectweb.asm.Label nextLabel)` |
    `void` | `writeContinue​(ContinueStatement statement)` |
    `void` | `writeDoWhileLoop​(DoWhileStatement loop)` |
    `void` | `writeExpressionStatement​(ExpressionStatement statement)` |
    `protected void` | `writeForInLoop​(ForStatement statement)` |
    `protected void` | `writeForInLoopControlAndBlock​(ForStatement statement)` |
    `protected void` | `writeForLoopWithClosureList​(ForStatement statement)` |
    `void` | `writeForStatement​(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)` |
    `protected void` | `writeStatementLabel​(Statement statement)` |
    `void` | `writeSwitch​(SwitchStatement statement)` |
    `void` | `writeSynchronized​(SynchronizedStatement statement)` |
    `void` | `writeThrow​(ThrowStatement statement)` |
    `void` | `writeTryCatchFinally​(TryCatchStatement statement)` |
    `void` | `writeWhileLoop​(WhileStatement statement)` |

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

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

- - ### Field Detail

    - #### controller

          protected final WriterController controller

  - ### Constructor Detail

    - #### StatementWriter

          public StatementWriter​(WriterController controller)

  - ### Method Detail

    - #### writeStatementLabel

          protected void writeStatementLabel​(Statement statement)

    - #### writeBlockStatement

          public void writeBlockStatement​(BlockStatement block)

    - #### writeForStatement

          public void writeForStatement​(ForStatement statement)

    - #### writeForInLoop

          protected void writeForInLoop​(ForStatement statement)

    - #### writeForInLoopControlAndBlock

          protected void writeForInLoopControlAndBlock​(ForStatement statement)

    - #### writeIteratorHasNext

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

    - #### writeIteratorNext

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

    - #### writeForLoopWithClosureList

          protected void writeForLoopWithClosureList​(ForStatement statement)

    - #### writeWhileLoop

          public void writeWhileLoop​(WhileStatement statement)

    - #### writeDoWhileLoop

          public void writeDoWhileLoop​(DoWhileStatement loop)

    - #### writeIfElse

          public void writeIfElse​(IfStatement statement)

    - #### writeTryCatchFinally

          public void writeTryCatchFinally​(TryCatchStatement statement)

    - #### writeSwitch

          public void writeSwitch​(SwitchStatement statement)

    - #### writeCaseStatement

          protected void writeCaseStatement​(CaseStatement statement,
                                            int switchVariableIndex,
                                            org.objectweb.asm.Label thisLabel,
                                            org.objectweb.asm.Label nextLabel)

    - #### writeBreak

          public void writeBreak​(BreakStatement statement)

    - #### writeContinue

          public void writeContinue​(ContinueStatement statement)

    - #### writeSynchronized

          public void writeSynchronized​(SynchronizedStatement statement)

    - #### writeAssert

          public void writeAssert​(AssertStatement statement)

    - #### writeThrow

          public void writeThrow​(ThrowStatement statement)

    - #### writeReturn

          public void writeReturn​(ReturnStatement statement)

    - #### writeExpressionStatement

          public void writeExpressionStatement​(ExpressionStatement statement)