Class NewTryWithResourcesTransform
- 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.NewTryWithResourcesTransform
-
- All Implemented Interfaces:
IAstVisitor<java.lang.Void,java.lang.Void>
,IAstTransform
public class NewTryWithResourcesTransform extends ContextTrackingVisitor<java.lang.Void>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
NewTryWithResourcesTransform.EmptyTryWithResourcesRewriter
-
Field Summary
Fields Modifier and Type Field Description private AstBuilder
_builder
private JavaResolver
_resolver
private Statement
_resourceDeclaration
private TryCatchStatement
_tryPattern
-
Fields inherited from class com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor
context
-
-
Constructor Summary
Constructors Constructor Description NewTryWithResourcesTransform(DecompilerContext context)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
canMoveVariableDeclaration(Statement initializeResource, IdentifierExpression resource, Statement node)
private static ParameterDeclaration
findDeclaration(IdentifierExpression id, AstNode source)
private boolean
notEffectivelyFinal(java.lang.String resourceName, BlockStatement scope, Statement startingPoint)
void
run(AstNode compilationUnit)
java.lang.Void
visitTryCatchStatement(TryCatchStatement 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, visitIdentifierExpression, visitIfElseStatement, visitImportDeclaration, visitIndexerExpression, 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, visitSwitchStatement, visitSynchronizedStatement, visitText, visitThisReferenceExpression, visitThrowStatement, visitTypeParameterDeclaration, visitTypeReference, visitUnaryOperatorExpression, visitUnionType, visitVariableDeclaration, visitVariableInitializer, visitWhileStatement, visitWildcardType
-
-
-
-
Field Detail
-
_resourceDeclaration
private final Statement _resourceDeclaration
-
_tryPattern
private final TryCatchStatement _tryPattern
-
_resolver
private final JavaResolver _resolver
-
_builder
private AstBuilder _builder
-
-
Constructor Detail
-
NewTryWithResourcesTransform
public NewTryWithResourcesTransform(DecompilerContext context)
-
-
Method Detail
-
run
public void run(AstNode compilationUnit)
- Specified by:
run
in interfaceIAstTransform
- Overrides:
run
in classContextTrackingVisitor<java.lang.Void>
-
visitTryCatchStatement
public java.lang.Void visitTryCatchStatement(TryCatchStatement node, java.lang.Void data)
- Specified by:
visitTryCatchStatement
in interfaceIAstVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitTryCatchStatement
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
notEffectivelyFinal
private boolean notEffectivelyFinal(java.lang.String resourceName, BlockStatement scope, Statement startingPoint)
-
canMoveVariableDeclaration
private boolean canMoveVariableDeclaration(Statement initializeResource, IdentifierExpression resource, Statement node)
-
findDeclaration
private static ParameterDeclaration findDeclaration(IdentifierExpression id, AstNode source)
-
-