public final class CaseStatement extends GoloStatement implements Scope, Alternatives<Block>
| Modifier and Type | Method and Description |
|---|---|
void |
accept(GoloIrVisitor visitor)
Accept the visitor.
|
java.util.List<WhenClause<Block>> |
getClauses() |
Block |
getOtherwise() |
CaseStatement |
ofAST(GoloASTNode n) |
CaseStatement |
otherwise(java.lang.Object action) |
void |
relink(ReferenceTable table)
Make the given table a parent of this scope.
|
void |
relinkTopLevel(ReferenceTable table)
Make the given table the top-level parent of this scope.
|
void |
replaceElement(GoloElement original,
GoloElement newElement)
Replace a child.
|
CaseStatement |
then(java.lang.Object action) |
void |
walk(GoloIrVisitor visitor)
Walk the visitor through this node children.
|
CaseStatement |
when(java.lang.Object cond) |
cantConvert, cantReplace, cantReplace, doesNotContain, getASTNode, getDocumentation, getLocalReferenceTable, getParentNode, getPositionInSourceCode, hasASTNode, makeParentOf, replaceInParentBy, setASTNode, setParentNodepublic CaseStatement when(java.lang.Object cond)
when in interface Alternatives<Block>public CaseStatement then(java.lang.Object action)
then in interface Alternatives<Block>public CaseStatement otherwise(java.lang.Object action)
otherwise in interface Alternatives<Block>public java.util.List<WhenClause<Block>> getClauses()
getClauses in interface Alternatives<Block>public Block getOtherwise()
getOtherwise in interface Alternatives<Block>public CaseStatement ofAST(GoloASTNode n)
ofAST in class GoloElementpublic void relink(ReferenceTable table)
Scopepublic void relinkTopLevel(ReferenceTable table)
ScopeGo up in the hierarchy of parent scope, and set the root to the given table.
relinkTopLevel in interface Scopepublic 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 GoloElementpublic void walk(GoloIrVisitor visitor)
GoloElementwalk in class GoloElementpublic 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 GoloElementoriginal - 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)