Class IntroduceOuterClassReferencesTransform
- 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.IntroduceOuterClassReferencesTransform
-
- All Implemented Interfaces:
IAstVisitor<java.lang.Void,java.lang.Void>
,IAstTransform
public class IntroduceOuterClassReferencesTransform extends ContextTrackingVisitor<java.lang.Void>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
IntroduceOuterClassReferencesTransform.PhaseOneVisitor
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<AstNode>
_nodesToRemove
private java.util.Set<java.lang.String>
_outerClassFields
private java.util.Set<ParameterReference>
_parametersToRemove
-
Fields inherited from class com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor
context
-
-
Constructor Summary
Constructors Constructor Description IntroduceOuterClassReferencesTransform(DecompilerContext context)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
isContextWithinTypeInstance(TypeReference type)
void
run(AstNode compilationUnit)
private boolean
tryInsertOuterClassReference(MemberReferenceExpression node, MemberReference reference)
private boolean
tryIntroduceOuterClassReference(MemberReferenceExpression node, boolean hasThisOnLeft)
java.lang.Void
visitIdentifierExpression(IdentifierExpression node, java.lang.Void data)
java.lang.Void
visitInvocationExpression(InvocationExpression node, java.lang.Void data)
java.lang.Void
visitMemberReferenceExpression(MemberReferenceExpression node, java.lang.Void data)
-
Methods inherited from class com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor
inConstructor, inMethod, inStaticInitializer, makeType, makeType, resolver, visitConstructorDeclaration, visitMethodDeclaration, visitMethodDeclarationOverride, visitTypeDeclaration, visitTypeDeclarationOverride
-
Methods inherited from class com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor
shouldContinue, visitAnnotation, visitAnonymousObjectCreationExpression, visitArrayCreationExpression, visitArrayInitializerExpression, visitArraySpecifier, visitAssertStatement, visitAssignmentExpression, visitBinaryOperatorExpression, visitBlockStatement, visitBreakStatement, visitBytecodeConstant, visitCaseLabel, visitCastExpression, visitCatchClause, visitChildren, visitClassOfExpression, visitComment, visitCompilationUnit, visitComposedType, visitConditionalExpression, visitContinueStatement, visitDoWhileStatement, visitEmptyStatement, visitEnumValueDeclaration, visitExpressionStatement, visitFieldDeclaration, visitForEachStatement, visitForStatement, visitGotoStatement, visitIdentifier, visitIfElseStatement, visitImportDeclaration, visitIndexerExpression, visitInitializerBlock, visitInlinedBytecode, visitInstanceOfExpression, visitIntersectionType, visitJavaTokenNode, visitLabeledStatement, visitLabelStatement, visitLambdaExpression, visitLocalTypeDeclarationStatement, visitMethodGroupExpression, visitModuleDeclaration, visitNewLine, visitNullReferenceExpression, visitObjectCreationExpression, visitPackageDeclaration, visitParameterDeclaration, visitParenthesizedExpression, visitPatternPlaceholder, visitPrimitiveExpression, visitReturnStatement, visitSimpleType, visitSuperReferenceExpression, visitSwitchExpression, visitSwitchExpressionArm, visitSwitchSection, visitSwitchStatement, visitSynchronizedStatement, visitText, visitThisReferenceExpression, visitThrowStatement, visitTryCatchStatement, visitTypeParameterDeclaration, visitTypeReference, visitUnaryOperatorExpression, visitUnionType, visitVariableDeclaration, visitVariableInitializer, visitWhileStatement, visitWildcardType
-
-
-
-
Field Detail
-
_nodesToRemove
private final java.util.List<AstNode> _nodesToRemove
-
_outerClassFields
private final java.util.Set<java.lang.String> _outerClassFields
-
_parametersToRemove
private final java.util.Set<ParameterReference> _parametersToRemove
-
-
Constructor Detail
-
IntroduceOuterClassReferencesTransform
public IntroduceOuterClassReferencesTransform(DecompilerContext context)
-
-
Method Detail
-
run
public void run(AstNode compilationUnit)
- Specified by:
run
in interfaceIAstTransform
- Overrides:
run
in classContextTrackingVisitor<java.lang.Void>
-
visitInvocationExpression
public java.lang.Void visitInvocationExpression(InvocationExpression node, java.lang.Void data)
- Specified by:
visitInvocationExpression
in interfaceIAstVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitInvocationExpression
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitMemberReferenceExpression
public java.lang.Void visitMemberReferenceExpression(MemberReferenceExpression node, java.lang.Void data)
- Specified by:
visitMemberReferenceExpression
in interfaceIAstVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitMemberReferenceExpression
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
tryIntroduceOuterClassReference
private boolean tryIntroduceOuterClassReference(MemberReferenceExpression node, boolean hasThisOnLeft)
-
visitIdentifierExpression
public java.lang.Void visitIdentifierExpression(IdentifierExpression node, java.lang.Void data)
- Specified by:
visitIdentifierExpression
in interfaceIAstVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitIdentifierExpression
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
tryInsertOuterClassReference
private boolean tryInsertOuterClassReference(MemberReferenceExpression node, MemberReference reference)
-
isContextWithinTypeInstance
private boolean isContextWithinTypeInstance(TypeReference type)
-
-