Class StructuredCase
- java.lang.Object
-
- org.benf.cfr.reader.bytecode.analysis.structured.statement.AbstractStructuredStatement
-
- org.benf.cfr.reader.bytecode.analysis.structured.statement.AbstractStructuredBlockStatement
-
- org.benf.cfr.reader.bytecode.analysis.structured.statement.StructuredCase
-
- All Implemented Interfaces:
HasByteCodeLoc
,Matcher<StructuredStatement>
,StructuredStatement
,Dumpable
,TypeUsageCollectable
public class StructuredCase extends AbstractStructuredBlockStatement
-
-
Field Summary
Fields Modifier and Type Field Description private BlockIdentifier
blockIdentifier
private boolean
enumSwitch
private InferredJavaType
inferredJavaTypeOfSwitch
private java.util.List<Expression>
values
-
Constructor Summary
Constructors Constructor Description StructuredCase(BytecodeLoc loc, java.util.List<Expression> values, InferredJavaType inferredJavaTypeOfSwitch, Op04StructuredStatement body, BlockIdentifier blockIdentifier)
StructuredCase(BytecodeLoc loc, java.util.List<Expression> values, InferredJavaType inferredJavaTypeOfSwitch, Op04StructuredStatement body, BlockIdentifier blockIdentifier, boolean enumSwitch)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
collectTypeUsages(TypeUsageCollector collector)
Dumper
dump(Dumper dumper)
BlockIdentifier
getBlockIdentifier()
BytecodeLoc
getCombinedLoc()
private static StaticVariable
getEnumStatic(Expression expression)
java.util.List<Expression>
getValues()
boolean
isDefault()
boolean
isProperlyStructured()
void
linearizeInto(java.util.List<StructuredStatement> out)
boolean
match(MatchIterator<StructuredStatement> matchIterator, MatchResultCollector matchResultCollector)
void
rewriteExpressions(ExpressionRewriter expressionRewriter)
void
traceLocalVariableScope(LValueScopeDiscoverer scopeDiscoverer)
-
Methods inherited from class org.benf.cfr.reader.bytecode.analysis.structured.statement.AbstractStructuredBlockStatement
getBody, isRecursivelyStructured, transformStructuredChildren
-
Methods inherited from class org.benf.cfr.reader.bytecode.analysis.structured.statement.AbstractStructuredStatement
addLoc, alwaysDefines, canDefine, canFall, claimBlock, fallsNopToNext, findCreatedHere, getBreakableBlockOrNull, getContainer, getInline, getLoc, informBlockHeirachy, inlineable, isEffectivelyNOP, isScopeBlock, markCreator, setContainer, suggestName, supportsBreak, supportsContinueBreak, toString, transformStructuredChildrenInReverse
-
-
-
-
Field Detail
-
values
private java.util.List<Expression> values
-
blockIdentifier
private final BlockIdentifier blockIdentifier
-
inferredJavaTypeOfSwitch
private final InferredJavaType inferredJavaTypeOfSwitch
-
enumSwitch
private final boolean enumSwitch
-
-
Constructor Detail
-
StructuredCase
public StructuredCase(BytecodeLoc loc, java.util.List<Expression> values, InferredJavaType inferredJavaTypeOfSwitch, Op04StructuredStatement body, BlockIdentifier blockIdentifier)
-
StructuredCase
public StructuredCase(BytecodeLoc loc, java.util.List<Expression> values, InferredJavaType inferredJavaTypeOfSwitch, Op04StructuredStatement body, BlockIdentifier blockIdentifier, boolean enumSwitch)
-
-
Method Detail
-
getCombinedLoc
public BytecodeLoc getCombinedLoc()
-
collectTypeUsages
public void collectTypeUsages(TypeUsageCollector collector)
- Specified by:
collectTypeUsages
in interfaceTypeUsageCollectable
- Overrides:
collectTypeUsages
in classAbstractStructuredBlockStatement
-
getEnumStatic
private static StaticVariable getEnumStatic(Expression expression)
-
isProperlyStructured
public boolean isProperlyStructured()
- Specified by:
isProperlyStructured
in interfaceStructuredStatement
- Overrides:
isProperlyStructured
in classAbstractStructuredStatement
-
getValues
public java.util.List<Expression> getValues()
-
getBlockIdentifier
public BlockIdentifier getBlockIdentifier()
-
linearizeInto
public void linearizeInto(java.util.List<StructuredStatement> out)
-
traceLocalVariableScope
public void traceLocalVariableScope(LValueScopeDiscoverer scopeDiscoverer)
-
match
public boolean match(MatchIterator<StructuredStatement> matchIterator, MatchResultCollector matchResultCollector)
- Specified by:
match
in interfaceMatcher<StructuredStatement>
- Overrides:
match
in classAbstractStructuredStatement
-
rewriteExpressions
public void rewriteExpressions(ExpressionRewriter expressionRewriter)
-
isDefault
public boolean isDefault()
-
-