Class StructuredTry
java.lang.Object
org.benf.cfr.reader.bytecode.analysis.structured.statement.AbstractStructuredStatement
org.benf.cfr.reader.bytecode.analysis.structured.statement.StructuredTry
- All Implemented Interfaces:
HasByteCodeLoc
,Matcher<StructuredStatement>
,StructuredStatement
,Dumpable
,TypeUsageCollectable
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate List<Op04StructuredStatement>
private Op04StructuredStatement
private List<Op04StructuredStatement>
private Op04StructuredStatement
private final BlockIdentifier
-
Constructor Summary
ConstructorsConstructorDescriptionStructuredTry
(Op04StructuredStatement tryBlock, BlockIdentifier tryBlockIdentifier) -
Method Summary
Modifier and TypeMethodDescription(package private) void
addCatch
(Op04StructuredStatement catchStatement) void
addResources
(List<Op04StructuredStatement> resources) void
void
collectTypeUsages
(TypeUsageCollector collector) boolean
boolean
boolean
private boolean
private boolean
boolean
boolean
boolean
void
boolean
match
(MatchIterator<StructuredStatement> matchIterator, MatchResultCollector matchResultCollector) void
rewriteExpressions
(ExpressionRewriter expressionRewriter) void
setFinally
(Op04StructuredStatement finallyBlock) void
setTryBlock
(Op04StructuredStatement tryBlock) void
traceLocalVariableScope
(LValueScopeDiscoverer scopeDiscoverer) void
transformStructuredChildren
(StructuredStatementTransformer transformer, StructuredScope scope) Methods inherited from class org.benf.cfr.reader.bytecode.analysis.structured.statement.AbstractStructuredStatement
addLoc, alwaysDefines, canDefine, canFall, claimBlock, findCreatedHere, getBreakableBlockOrNull, getContainer, getLoc, informBlockHeirachy, isEffectivelyNOP, markCreator, setContainer, suggestName, supportsBreak, supportsContinueBreak, toString, transformStructuredChildrenInReverse
-
Field Details
-
tryBlock
-
catchBlocks
-
finallyBlock
-
tryBlockIdentifier
-
resourceBlock
-
-
Constructor Details
-
StructuredTry
-
-
Method Details
-
getCombinedLoc
-
addResources
-
getResources
-
hasResources
public boolean hasResources() -
getTryBlock
-
getCatchBlocks
-
clearCatchBlocks
public void clearCatchBlocks() -
dump
-
collectTypeUsages
-
isProperlyStructured
public boolean isProperlyStructured()- Specified by:
isProperlyStructured
in interfaceStructuredStatement
- Overrides:
isProperlyStructured
in classAbstractStructuredStatement
-
fallsNopToNext
public boolean fallsNopToNext()- Specified by:
fallsNopToNext
in interfaceStructuredStatement
- Overrides:
fallsNopToNext
in classAbstractStructuredStatement
-
addCatch
-
setFinally
-
isScopeBlock
public boolean isScopeBlock()- Specified by:
isScopeBlock
in interfaceStructuredStatement
- Overrides:
isScopeBlock
in classAbstractStructuredStatement
-
transformStructuredChildren
public void transformStructuredChildren(StructuredStatementTransformer transformer, StructuredScope scope) -
linearizeInto
-
traceLocalVariableScope
-
isRecursivelyStructured
public boolean isRecursivelyStructured()- Specified by:
isRecursivelyStructured
in interfaceStructuredStatement
- Overrides:
isRecursivelyStructured
in classAbstractStructuredStatement
-
getFinallyBlock
-
match
public boolean match(MatchIterator<StructuredStatement> matchIterator, MatchResultCollector matchResultCollector) - Specified by:
match
in interfaceMatcher<StructuredStatement>
- Overrides:
match
in classAbstractStructuredStatement
-
rewriteExpressions
-
isPointlessTry
private boolean isPointlessTry() -
isJustTryCatchThrow
private boolean isJustTryCatchThrow() -
inlineable
public boolean inlineable()- Specified by:
inlineable
in interfaceStructuredStatement
- Overrides:
inlineable
in classAbstractStructuredStatement
-
getTryBlockIdentifier
-
getInline
- Specified by:
getInline
in interfaceStructuredStatement
- Overrides:
getInline
in classAbstractStructuredStatement
-
setTryBlock
-