|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.biojava.utils.bytecode.IfExpression
public class IfExpression
A CodeGenerator that provides something semanticaly identical to if.
It generates code of the form:
conditional branch to trueLabel
ifFalse instructions here
branch to endLabel
trueLabel
ifTrue instructions here
endLabel
Constructor Summary | |
---|---|
IfExpression(byte ifInstruction,
CodeGenerator ifTrue,
CodeGenerator ifFalse)
|
Method Summary | |
---|---|
CodeGenerator |
getIfFalse()
|
Instruction |
getIfInstruction()
|
CodeGenerator |
getIfTrue()
|
int |
stackDelta()
Return the change in the stack dept this generator will cause. |
int |
stackDepth()
Return the total depth of the stack required by this CodeGenerator. |
void |
writeCode(CodeContext ctx)
Write the byte or bytes for this CodeGenerator to a CodeContext. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public IfExpression(byte ifInstruction, CodeGenerator ifTrue, CodeGenerator ifFalse)
Method Detail |
---|
public Instruction getIfInstruction()
public CodeGenerator getIfTrue()
public CodeGenerator getIfFalse()
public void writeCode(CodeContext ctx) throws CodeException
CodeGenerator
writeCode
in interface CodeGenerator
ctx
- a CodeContext to write to
CodeException
- if there was some failure in writing to the contextpublic int stackDepth()
CodeGenerator
For single byte-code instructions, this will be the same as stackDelta() if stackDelta() is positive, zero otherwise. For a compound instruction, this will be the maximum stack depth required to execute all sub-instructions.
stackDepth
in interface CodeGenerator
public int stackDelta()
CodeGenerator
In the case of an instruction that adds items to the stack, stackDelta will be positive. For instructions that removes items from the stack, this will be negative.
stackDelta
in interface CodeGenerator
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |