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 class
private static class
private class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final BlockIdentifierFactory
private final ClassFile
private final ClassFileVersion
private final DCCommonState
private static final JavaTypeInstance
-
Constructor Summary
ConstructorsConstructorDescriptionSwitchEnumRewriter
(DCCommonState dcCommonState, ClassFile classFile, BlockIdentifierFactory blockIdentifierFactory) -
Method Summary
Modifier and TypeMethodDescriptionprivate KleeneStar
getEnumSugarKleeneStar
(LValue lookupTable, Expression enumObject, WildcardMatch wcm) private Integer
private List<StructuredStatement>
getLookupMethodStatements
(Method lutStaticInit) private boolean
replaceIndexedSwitch
(SwitchEnumRewriter.SwitchEnumMatchResultCollector mrc, boolean expression, Expression enumObject, SwitchEnumRewriter.SwitchForeignEnumMatchResultCollector matchResultCollector) void
private void
tryRewrite
(SwitchEnumRewriter.SwitchEnumMatchResultCollector mrc, boolean expression) private void
tryRewriteEclipse
(SwitchEnumRewriter.SwitchEnumMatchResultCollector mrc, StaticFunctionInvokation lookupFn, boolean expression) private void
tryRewriteJavac
(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:
rewrite
in 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
-