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 classIntroduceOuterClassReferencesTransform.PhaseOneVisitor
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<AstNode>_nodesToRemoveprivate java.util.Set<java.lang.String>_outerClassFieldsprivate 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 booleanisContextWithinTypeInstance(TypeReference type)voidrun(AstNode compilationUnit)private booleantryInsertOuterClassReference(MemberReferenceExpression node, MemberReference reference)private booleantryIntroduceOuterClassReference(MemberReferenceExpression node, boolean hasThisOnLeft)java.lang.VoidvisitIdentifierExpression(IdentifierExpression node, java.lang.Void data)java.lang.VoidvisitInvocationExpression(InvocationExpression node, java.lang.Void data)java.lang.VoidvisitMemberReferenceExpression(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:
runin interfaceIAstTransform- Overrides:
runin classContextTrackingVisitor<java.lang.Void>
-
visitInvocationExpression
public java.lang.Void visitInvocationExpression(InvocationExpression node, java.lang.Void data)
- Specified by:
visitInvocationExpressionin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitInvocationExpressionin classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitMemberReferenceExpression
public java.lang.Void visitMemberReferenceExpression(MemberReferenceExpression node, java.lang.Void data)
- Specified by:
visitMemberReferenceExpressionin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitMemberReferenceExpressionin 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:
visitIdentifierExpressionin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitIdentifierExpressionin classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
tryInsertOuterClassReference
private boolean tryInsertOuterClassReference(MemberReferenceExpression node, MemberReference reference)
-
isContextWithinTypeInstance
private boolean isContextWithinTypeInstance(TypeReference type)
-
-