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

  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, writeForInLoopControlAndBlock, 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)