Class SwitchEnumRewriter
- java.lang.Object
-
- org.benf.cfr.reader.bytecode.analysis.opgraph.op4rewriters.SwitchEnumRewriter
-
- All Implemented Interfaces:
Op04Rewriter
public class SwitchEnumRewriter extends java.lang.Object implements Op04Rewriter
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classSwitchEnumRewriter.EclipseVarResultCollectorprivate static classSwitchEnumRewriter.SwitchEnumMatchResultCollectorprivate classSwitchEnumRewriter.SwitchForeignEnumMatchResultCollector
-
Field Summary
Fields Modifier and Type Field Description private BlockIdentifierFactoryblockIdentifierFactoryprivate ClassFileclassFileprivate ClassFileVersionclassFileVersionprivate DCCommonStatedcCommonStateprivate static JavaTypeInstanceexpectedLUTType
-
Constructor Summary
Constructors Constructor Description SwitchEnumRewriter(DCCommonState dcCommonState, ClassFile classFile, BlockIdentifierFactory blockIdentifierFactory)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private KleeneStargetEnumSugarKleeneStar(LValue lookupTable, Expression enumObject, WildcardMatch wcm)private java.lang.IntegergetIntegerFromLiteralExpression(Expression exp)private java.util.List<StructuredStatement>getLookupMethodStatements(Method lutStaticInit)private booleanreplaceIndexedSwitch(SwitchEnumRewriter.SwitchEnumMatchResultCollector mrc, boolean expression, Expression enumObject, SwitchEnumRewriter.SwitchForeignEnumMatchResultCollector matchResultCollector)voidrewrite(Op04StructuredStatement root)private 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 Detail
-
dcCommonState
private final DCCommonState dcCommonState
-
classFile
private final ClassFile classFile
-
classFileVersion
private final ClassFileVersion classFileVersion
-
blockIdentifierFactory
private final BlockIdentifierFactory blockIdentifierFactory
-
expectedLUTType
private static final JavaTypeInstance expectedLUTType
-
-
Constructor Detail
-
SwitchEnumRewriter
public SwitchEnumRewriter(DCCommonState dcCommonState, ClassFile classFile, BlockIdentifierFactory blockIdentifierFactory)
-
-
Method Detail
-
rewrite
public void rewrite(Op04StructuredStatement root)
- Specified by:
rewritein interfaceOp04Rewriter
-
tryRewrite
private void tryRewrite(SwitchEnumRewriter.SwitchEnumMatchResultCollector mrc, boolean expression)
-
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
private java.util.List<StructuredStatement> getLookupMethodStatements(Method lutStaticInit)
-
getIntegerFromLiteralExpression
private java.lang.Integer getIntegerFromLiteralExpression(Expression exp)
-
-