public class SwitchEnumRewriter extends java.lang.Object implements Op04Rewriter
Modifier and Type | Class and Description |
---|---|
private static class |
SwitchEnumRewriter.EclipseVarResultCollector |
private static class |
SwitchEnumRewriter.SwitchEnumMatchResultCollector |
private class |
SwitchEnumRewriter.SwitchForeignEnumMatchResultCollector |
Modifier and Type | Field and Description |
---|---|
private BlockIdentifierFactory |
blockIdentifierFactory |
private ClassFile |
classFile |
private ClassFileVersion |
classFileVersion |
private DCCommonState |
dcCommonState |
private static JavaTypeInstance |
expectedLUTType |
Constructor and Description |
---|
SwitchEnumRewriter(DCCommonState dcCommonState,
ClassFile classFile,
BlockIdentifierFactory blockIdentifierFactory) |
Modifier and Type | Method and Description |
---|---|
private KleeneStar |
getEnumSugarKleeneStar(LValue lookupTable,
Expression enumObject,
WildcardMatch wcm) |
private java.lang.Integer |
getIntegerFromLiteralExpression(Expression exp) |
private java.util.List<StructuredStatement> |
getLookupMethodStatements(Method lutStaticInit) |
private boolean |
replaceIndexedSwitch(SwitchEnumRewriter.SwitchEnumMatchResultCollector mrc,
boolean expression,
Expression enumObject,
SwitchEnumRewriter.SwitchForeignEnumMatchResultCollector matchResultCollector) |
void |
rewrite(Op04StructuredStatement root) |
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) |
private final DCCommonState dcCommonState
private final ClassFile classFile
private final ClassFileVersion classFileVersion
private final BlockIdentifierFactory blockIdentifierFactory
private static final JavaTypeInstance expectedLUTType
public SwitchEnumRewriter(DCCommonState dcCommonState, ClassFile classFile, BlockIdentifierFactory blockIdentifierFactory)
public void rewrite(Op04StructuredStatement root)
rewrite
in interface Op04Rewriter
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)
private boolean replaceIndexedSwitch(SwitchEnumRewriter.SwitchEnumMatchResultCollector mrc, boolean expression, Expression enumObject, SwitchEnumRewriter.SwitchForeignEnumMatchResultCollector matchResultCollector)
private KleeneStar getEnumSugarKleeneStar(LValue lookupTable, Expression enumObject, WildcardMatch wcm)
private java.util.List<StructuredStatement> getLookupMethodStatements(Method lutStaticInit)
private java.lang.Integer getIntegerFromLiteralExpression(Expression exp)