Class RawSwitchStatement
java.lang.Object
org.benf.cfr.reader.bytecode.analysis.parse.statement.AbstractStatement
org.benf.cfr.reader.bytecode.analysis.parse.statement.RawSwitchStatement
- All Implemented Interfaces:
HasByteCodeLoc
,DeepCloneable<Statement>
,Statement
,ComparableUnderEC
,Dumpable
A 'raw' switch contains the original bytecode information about the switch. We split this up into
SwitchStatements and CaseStatements. Case statements are really no more than glorified comments,
as they perform no function other than to serve as labels. However, we can embed useful information in
them.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionRawSwitchStatement
(BytecodeLoc loc, Expression switchOn, DecodedSwitch switchData) -
Method Summary
Modifier and TypeMethodDescriptionvoid
collectLValueUsage
(LValueUsageCollector lValueUsageCollector) deepClone
(CloneHelper cloneHelper) final boolean
equivalentUnder
(Object o, EquivalenceConstraint constraint) boolean
getSwitchStatement
(BlockIdentifier blockIdentifier) void
replaceSingleUsageLValues
(LValueRewriter lValueRewriter, SSAIdentifiers ssaIdentifiers) void
rewriteExpressions
(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers) Methods inherited from class org.benf.cfr.reader.bytecode.analysis.parse.statement.AbstractStatement
addLoc, canThrow, collectLocallyMutatedVariables, collectLValueAssignments, collectObjectCreation, doesBlackListLValueReplacement, getCompoundParts, getContainer, getCreatedLValue, getLoc, getRValue, getTargetStatement, isCompound, outerDeepClone, setContainer, setLifetimeHint, toString, wantsLifetimeHint
-
Field Details
-
switchOn
-
switchData
-
-
Constructor Details
-
RawSwitchStatement
-
-
Method Details
-
getCombinedLoc
-
dump
-
deepClone
-
replaceSingleUsageLValues
-
rewriteExpressions
public void rewriteExpressions(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers) -
collectLValueUsage
-
getSwitchData
-
getSwitchOn
-
getStructuredStatement
-
getSwitchStatement
-
equivalentUnder
-
fallsToNext
public boolean fallsToNext()- Specified by:
fallsToNext
in interfaceStatement
- Overrides:
fallsToNext
in classAbstractStatement
-