Top Description Fields Constructors Methods
org.apache.groovy.parser.antlr4

public Class TryWithResourcesASTTransformation

extends Object
Class Inheritance
Imports
org.codehaus.groovy.ast.ClassHelper, .Parameter, org.codehaus.groovy.ast.expr.ArgumentListExpression, .BinaryExpression, .BooleanExpression, .ConstantExpression, .DeclarationExpression, .Expression, .MethodCallExpression, .VariableExpression, org.codehaus.groovy.ast.stmt.BlockStatement, .CatchStatement, .EmptyStatement, .ExpressionStatement, .IfStatement, .Statement, .ThrowStatement, .TryCatchStatement, org.codehaus.groovy.syntax.Types, org.objectweb.asm.Opcodes, java.util.Collections, .List

Transform try-with-resources to try-catch-finally Reference JLS "14.20.3. try-with-resources"(https://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html)

Field Summary

Modifier and TypeField and Description
private AstBuilder
private int
private int
private int
private int

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private ExpressionStatement
createAddSuppressedStatement(String primaryExcName, String suppressedExcName)

private CatchStatement
private ExpressionStatement
createCloseResourceStatement(String firstResourceIdentifierName)

private BlockStatement
createFinallyBlockForNewTryCatchStatement(String primaryExcName, String firstResourceIdentifierName)

private String
private String
private String
private String
private boolean
private ExpressionStatement
public Statement

Returns:

try-catch-finally statement, which contains no resources clause
transform
(TryCatchStatement
the try-with-resources statement to transform
tryCatchStatement
)

Reference JLS "14.20.3.

private Statement
private Statement
public BinaryExpression
transformResourceAccess(Expression variableAccessExpression)

See https://docs.oracle.com/javase/specs/jls/se9/html/jls-14.html 14.20.3.1.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

astBuilderback to summary
private AstBuilder astBuilder
primaryExcCntback to summary
private int primaryExcCnt
resourceCntback to summary
private int resourceCnt
suppressedExcCntback to summary
private int suppressedExcCnt
tExcCntback to summary
private int tExcCnt

Constructor Detail

TryWithResourcesASTTransformationback to summary
public TryWithResourcesASTTransformation(AstBuilder astBuilder)

Method Detail

createAddSuppressedStatementback to summary
private ExpressionStatement createAddSuppressedStatement(String primaryExcName, String suppressedExcName)
createCatchBlockForOuterNewTryCatchStatementback to summary
private CatchStatement createCatchBlockForOuterNewTryCatchStatement(String primaryExcName)
createCloseResourceStatementback to summary
private ExpressionStatement createCloseResourceStatement(String firstResourceIdentifierName)
createFinallyBlockForNewTryCatchStatementback to summary
private BlockStatement createFinallyBlockForNewTryCatchStatement(String primaryExcName, String firstResourceIdentifierName)
genPrimaryExcNameback to summary
private String genPrimaryExcName()
genResourceNameback to summary
private String genResourceName()
genSuppressedExcNameback to summary
private String genSuppressedExcName()
genTExcNameback to summary
private String genTExcName()
isBasicTryWithResourcesStatementback to summary
private boolean isBasicTryWithResourcesStatement(TryCatchStatement tryCatchStatement)
makeVariableDeclarationFinalback to summary
private ExpressionStatement makeVariableDeclarationFinal(ExpressionStatement variableDeclaration)
transformback to summary
public Statement transform(TryCatchStatement tryCatchStatement)

Reference JLS "14.20.3. try-with-resources"(https://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html)

Parameters
tryCatchStatement:TryCatchStatement

the try-with-resources statement to transform

Returns:Statement

try-catch-finally statement, which contains no resources clause

transformBasicTryWithResourcesStatementback to summary
private Statement transformBasicTryWithResourcesStatement(TryCatchStatement tryCatchStatement)
transformExtendedTryWithResourcesStatementback to summary
private Statement transformExtendedTryWithResourcesStatement(TryCatchStatement tryCatchStatement)
transformResourceAccessback to summary
public BinaryExpression transformResourceAccess(Expression variableAccessExpression)

See https://docs.oracle.com/javase/specs/jls/se9/html/jls-14.html 14.20.3.1. Basic try-with-resources If a basic try-with-resource statement is of the form: try (VariableAccess ...) Block then the resource is first converted to a local variable declaration by the following translation: try (T #r = VariableAccess ...) { Block }