public class StructuredTry extends AbstractStructuredStatement
Modifier and Type | Field and Description |
---|---|
private java.util.List<Op04StructuredStatement> |
catchBlocks |
private Op04StructuredStatement |
finallyBlock |
private java.util.List<Op04StructuredStatement> |
resourceBlock |
private Op04StructuredStatement |
tryBlock |
private BlockIdentifier |
tryBlockIdentifier |
Constructor and Description |
---|
StructuredTry(Op04StructuredStatement tryBlock,
BlockIdentifier tryBlockIdentifier) |
addLoc, alwaysDefines, canDefine, canFall, claimBlock, findCreatedHere, getBreakableBlockOrNull, getContainer, getLoc, informBlockHeirachy, isEffectivelyNOP, markCreator, setContainer, suggestName, supportsBreak, supportsContinueBreak, toString, transformStructuredChildrenInReverse
private Op04StructuredStatement tryBlock
private java.util.List<Op04StructuredStatement> catchBlocks
private Op04StructuredStatement finallyBlock
private final BlockIdentifier tryBlockIdentifier
private java.util.List<Op04StructuredStatement> resourceBlock
public StructuredTry(Op04StructuredStatement tryBlock, BlockIdentifier tryBlockIdentifier)
public BytecodeLoc getCombinedLoc()
public void addResources(java.util.List<Op04StructuredStatement> resources)
public java.util.List<Op04StructuredStatement> getResources()
public boolean hasResources()
public Op04StructuredStatement getTryBlock()
public java.util.List<Op04StructuredStatement> getCatchBlocks()
public void clearCatchBlocks()
public void collectTypeUsages(TypeUsageCollector collector)
public boolean isProperlyStructured()
isProperlyStructured
in interface StructuredStatement
isProperlyStructured
in class AbstractStructuredStatement
public boolean fallsNopToNext()
fallsNopToNext
in interface StructuredStatement
fallsNopToNext
in class AbstractStructuredStatement
void addCatch(Op04StructuredStatement catchStatement)
public void setFinally(Op04StructuredStatement finallyBlock)
public boolean isScopeBlock()
isScopeBlock
in interface StructuredStatement
isScopeBlock
in class AbstractStructuredStatement
public void transformStructuredChildren(StructuredStatementTransformer transformer, StructuredScope scope)
public void linearizeInto(java.util.List<StructuredStatement> out)
public void traceLocalVariableScope(LValueScopeDiscoverer scopeDiscoverer)
public boolean isRecursivelyStructured()
isRecursivelyStructured
in interface StructuredStatement
isRecursivelyStructured
in class AbstractStructuredStatement
public Op04StructuredStatement getFinallyBlock()
public boolean match(MatchIterator<StructuredStatement> matchIterator, MatchResultCollector matchResultCollector)
match
in interface Matcher<StructuredStatement>
match
in class AbstractStructuredStatement
public void rewriteExpressions(ExpressionRewriter expressionRewriter)
private boolean isPointlessTry()
private boolean isJustTryCatchThrow()
public boolean inlineable()
inlineable
in interface StructuredStatement
inlineable
in class AbstractStructuredStatement
public BlockIdentifier getTryBlockIdentifier()
public Op04StructuredStatement getInline()
getInline
in interface StructuredStatement
getInline
in class AbstractStructuredStatement
public void setTryBlock(Op04StructuredStatement tryBlock)