Groovy Documentation

org.codehaus.groovy.classgen.asm
[Java] 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

Authors:
Jochen "blackdrag" Theodorou


Nested Class Summary
static class OptimizingStatementWriter.ClassNodeSkip

static class OptimizingStatementWriter.StatementMeta

 
Method Summary
java.lang.Object OptimizingStatementWriter(WriterController controller)

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 StatementWriter
writeAssert, writeBlockStatement, writeBreak, writeCaseStatement, writeContinue, writeDoWhileLoop, writeExpressionStatement, writeForInLoop, writeForLoopWithClosureList, writeForStatement, writeIfElse, writeIteratorHasNext, writeIteratorNext, writeReturn, writeStatementLabel, writeSwitch, writeSynchronized, writeThrow, writeTryCatchFinally, writeWhileLoop
 
Methods inherited from class java.lang.Object
java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()
 

Method Detail

OptimizingStatementWriter

public java.lang.Object OptimizingStatementWriter(WriterController controller)


setNodeMeta

public static void setNodeMeta(TypeChooser chooser, ClassNode classNode)


writeBlockStatement

public void writeBlockStatement(BlockStatement statement)


writeDoWhileLoop

fastPathBlocked = true;
public void writeDoWhileLoop(DoWhileStatement statement)


writeExpressionStatement

// (1) no fast path possible, so just do super
public void writeExpressionStatement(ExpressionStatement statement)


writeForInLoop

fastPathBlocked = true;
protected void writeForInLoop(ForStatement statement)


writeForLoopWithClosureList

fastPathBlocked = true;
protected void writeForLoopWithClosureList(ForStatement statement)


writeIfElse

fastPathBlocked = true;
public void writeIfElse(IfStatement statement)


writeIteratorHasNext

@Override
protected void writeIteratorHasNext(org.objectweb.asm.MethodVisitor mv)


writeIteratorNext

@Override
protected void writeIteratorNext(org.objectweb.asm.MethodVisitor mv)


writeReturn

fastPathBlocked = oldFastPathBlock;
public void writeReturn(ReturnStatement statement)


writeWhileLoop

fastPathBlocked = true;
public void writeWhileLoop(WhileStatement statement)


 

Groovy Documentation