Class EnumSwitchRewriterTransform.Visitor
- java.lang.Object
-
- com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor<java.lang.Void,TResult>
-
- com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor<java.lang.Void>
-
- com.strobel.decompiler.languages.java.ast.transforms.EnumSwitchRewriterTransform.Visitor
-
- All Implemented Interfaces:
IAstVisitor<java.lang.Void,java.lang.Void>
,IAstTransform
- Enclosing class:
- EnumSwitchRewriterTransform
private static final class EnumSwitchRewriterTransform.Visitor extends ContextTrackingVisitor<java.lang.Void>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
EnumSwitchRewriterTransform.Visitor.SwitchMapInfo
-
Field Summary
Fields Modifier and Type Field Description private boolean
_isSwitchMapWrapper
private StrongBox<Expression>
_scratch
private java.util.Map<java.lang.String,EnumSwitchRewriterTransform.Visitor.SwitchMapInfo>
_switchMaps
-
Fields inherited from class com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor
context
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
Visitor(DecompilerContext context)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
isSwitchMapLookup(Expression e, StrongBox<Expression> enumValue)
private static boolean
isSwitchMapWrapper(TypeReference type)
private void
rewrite()
private void
rewrite(EnumSwitchRewriterTransform.Visitor.SwitchMapInfo info)
private boolean
rewriteSwitch(SwitchStatement s, java.util.Map<java.lang.Integer,Expression> mappings)
java.lang.Void
visitAssignmentExpression(AssignmentExpression node, java.lang.Void data)
java.lang.Void
visitIndexerExpression(IndexerExpression node, java.lang.Void data)
java.lang.Void
visitSwitchStatement(SwitchStatement node, java.lang.Void data)
protected java.lang.Void
visitTypeDeclarationOverride(TypeDeclaration typeDeclaration, java.lang.Void p)
-
Methods inherited from class com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor
inConstructor, inMethod, inStaticInitializer, makeType, makeType, resolver, run, visitConstructorDeclaration, visitMethodDeclaration, visitMethodDeclarationOverride, visitTypeDeclaration
-
Methods inherited from class com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor
shouldContinue, visitAnnotation, visitAnonymousObjectCreationExpression, visitArrayCreationExpression, visitArrayInitializerExpression, visitArraySpecifier, visitAssertStatement, visitBinaryOperatorExpression, visitBlockStatement, visitBreakStatement, visitBytecodeConstant, visitCaseLabel, visitCastExpression, visitCatchClause, visitChildren, visitClassOfExpression, visitComment, visitCompilationUnit, visitComposedType, visitConditionalExpression, visitContinueStatement, visitDoWhileStatement, visitEmptyStatement, visitEnumValueDeclaration, visitExpressionStatement, visitFieldDeclaration, visitForEachStatement, visitForStatement, visitGotoStatement, visitIdentifier, visitIdentifierExpression, visitIfElseStatement, visitImportDeclaration, visitInitializerBlock, visitInlinedBytecode, visitInstanceOfExpression, visitIntersectionType, visitInvocationExpression, visitJavaTokenNode, visitLabeledStatement, visitLabelStatement, visitLambdaExpression, visitLocalTypeDeclarationStatement, visitMemberReferenceExpression, visitMethodGroupExpression, visitModuleDeclaration, visitNewLine, visitNullReferenceExpression, visitObjectCreationExpression, visitPackageDeclaration, visitParameterDeclaration, visitParenthesizedExpression, visitPatternPlaceholder, visitPrimitiveExpression, visitReturnStatement, visitSimpleType, visitSuperReferenceExpression, visitSwitchExpression, visitSwitchExpressionArm, visitSwitchSection, visitSynchronizedStatement, visitText, visitThisReferenceExpression, visitThrowStatement, visitTryCatchStatement, visitTypeParameterDeclaration, visitTypeReference, visitUnaryOperatorExpression, visitUnionType, visitVariableDeclaration, visitVariableInitializer, visitWhileStatement, visitWildcardType
-
-
-
-
Field Detail
-
_scratch
private final StrongBox<Expression> _scratch
-
_switchMaps
private final java.util.Map<java.lang.String,EnumSwitchRewriterTransform.Visitor.SwitchMapInfo> _switchMaps
-
_isSwitchMapWrapper
private boolean _isSwitchMapWrapper
-
-
Constructor Detail
-
Visitor
protected Visitor(DecompilerContext context)
-
-
Method Detail
-
visitTypeDeclarationOverride
protected java.lang.Void visitTypeDeclarationOverride(TypeDeclaration typeDeclaration, java.lang.Void p)
- Overrides:
visitTypeDeclarationOverride
in classContextTrackingVisitor<java.lang.Void>
-
visitIndexerExpression
public java.lang.Void visitIndexerExpression(IndexerExpression node, java.lang.Void data)
- Specified by:
visitIndexerExpression
in interfaceIAstVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitIndexerExpression
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitSwitchStatement
public java.lang.Void visitSwitchStatement(SwitchStatement node, java.lang.Void data)
- Specified by:
visitSwitchStatement
in interfaceIAstVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitSwitchStatement
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
isSwitchMapLookup
private boolean isSwitchMapLookup(Expression e, StrongBox<Expression> enumValue)
-
visitAssignmentExpression
public java.lang.Void visitAssignmentExpression(AssignmentExpression node, java.lang.Void data)
- Specified by:
visitAssignmentExpression
in interfaceIAstVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitAssignmentExpression
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
rewrite
private void rewrite()
-
rewrite
private void rewrite(EnumSwitchRewriterTransform.Visitor.SwitchMapInfo info)
-
rewriteSwitch
private boolean rewriteSwitch(SwitchStatement s, java.util.Map<java.lang.Integer,Expression> mappings)
-
isSwitchMapWrapper
private static boolean isSwitchMapWrapper(TypeReference type)
-
-