public final class ConditionalBranching extends GoloStatement implements Scope
cantConvert, cantReplace, cantReplace, doesNotContain, getASTNode, getDocumentation, getLocalReferenceTable, getParentNode, getPositionInSourceCode, hasASTNode, makeParentOf, replaceInParentBy, setASTNode, setParentNode
public ConditionalBranching condition(java.lang.Object cond)
public ConditionalBranching whenTrue(java.lang.Object block)
public ConditionalBranching whenFalse(java.lang.Object block)
public ConditionalBranching elseBranch(java.lang.Object elseBranch)
public ConditionalBranching otherwise(java.lang.Object alternative)
public ConditionalBranching ofAST(GoloASTNode node)
ofAST
in class GoloElement
public void relink(ReferenceTable table)
Scope
public void relinkTopLevel(ReferenceTable table)
Scope
Go up in the hierarchy of parent scope, and set the root to the given table.
relinkTopLevel
in interface Scope
public ExpressionStatement getCondition()
public void setCondition(ExpressionStatement condition)
public Block getTrueBlock()
public void setTrueBlock(Block block)
public Block getFalseBlock()
public void setFalseBlock(Block block)
public boolean hasFalseBlock()
public ConditionalBranching getElseConditionalBranching()
public void setElseConditionalBranching(ConditionalBranching elseBranch)
public boolean hasElseConditionalBranching()
public boolean returnsFromBothBranches()
public java.lang.String toString()
toString
in class java.lang.Object
public void accept(GoloIrVisitor visitor)
GoloElement
This method should only call the visitor visitXXXX
method.
The children of this node will be visited by the
GoloElement.walk(GoloIrVisitor)
method.
accept
in class GoloElement
public void walk(GoloIrVisitor visitor)
GoloElement
walk
in class GoloElement
protected void replaceElement(GoloElement original, GoloElement newElement)
GoloElement
Replace original
with newElement
if original
is a child of this node
and type matches.
replaceElement
in class GoloElement
original
- the original value to replace. Must be a child of this nodenewElement
- the element to replace with. Type must match.GoloElement.cantReplace()
,
GoloElement.cantReplace(GoloElement, GoloElement)
,
GoloElement.doesNotContain(GoloElement)
,
GoloElement.cantConvert(String, Object)