Class SwitchEnumRewriter
java.lang.Object
org.benf.cfr.reader.bytecode.analysis.opgraph.op4rewriters.SwitchEnumRewriter
- All Implemented Interfaces:
Op04Rewriter
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classprivate static classprivate class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final BlockIdentifierFactoryprivate final ClassFileprivate final ClassFileVersionprivate final DCCommonStateprivate static final JavaTypeInstance -
Constructor Summary
ConstructorsConstructorDescriptionSwitchEnumRewriter(DCCommonState dcCommonState, ClassFile classFile, BlockIdentifierFactory blockIdentifierFactory) -
Method Summary
Modifier and TypeMethodDescriptionprivate KleeneStargetEnumSugarKleeneStar(LValue lookupTable, Expression enumObject, WildcardMatch wcm) private Integerprivate List<StructuredStatement> getLookupMethodStatements(Method lutStaticInit) private booleanreplaceIndexedSwitch(SwitchEnumRewriter.SwitchEnumMatchResultCollector mrc, boolean expression, Expression enumObject, SwitchEnumRewriter.SwitchForeignEnumMatchResultCollector matchResultCollector) voidprivate voidtryRewrite(SwitchEnumRewriter.SwitchEnumMatchResultCollector mrc, boolean expression) private voidtryRewriteEclipse(SwitchEnumRewriter.SwitchEnumMatchResultCollector mrc, StaticFunctionInvokation lookupFn, boolean expression) private voidtryRewriteJavac(SwitchEnumRewriter.SwitchEnumMatchResultCollector mrc, LValue lookupTable, boolean expression)
-
Field Details
-
dcCommonState
-
classFile
-
classFileVersion
-
blockIdentifierFactory
-
expectedLUTType
-
-
Constructor Details
-
SwitchEnumRewriter
public SwitchEnumRewriter(DCCommonState dcCommonState, ClassFile classFile, BlockIdentifierFactory blockIdentifierFactory)
-
-
Method Details
-
rewrite
- Specified by:
rewritein interfaceOp04Rewriter
-
tryRewrite
-
tryRewriteEclipse
private void tryRewriteEclipse(SwitchEnumRewriter.SwitchEnumMatchResultCollector mrc, StaticFunctionInvokation lookupFn, boolean expression) -
tryRewriteJavac
private void tryRewriteJavac(SwitchEnumRewriter.SwitchEnumMatchResultCollector mrc, LValue lookupTable, boolean expression) -
replaceIndexedSwitch
private boolean replaceIndexedSwitch(SwitchEnumRewriter.SwitchEnumMatchResultCollector mrc, boolean expression, Expression enumObject, SwitchEnumRewriter.SwitchForeignEnumMatchResultCollector matchResultCollector) -
getEnumSugarKleeneStar
private KleeneStar getEnumSugarKleeneStar(LValue lookupTable, Expression enumObject, WildcardMatch wcm) -
getLookupMethodStatements
-
getIntegerFromLiteralExpression
-