1019 */ |
1019 */ |
1020 public static class JCTry extends JCStatement implements TryTree { |
1020 public static class JCTry extends JCStatement implements TryTree { |
1021 public JCBlock body; |
1021 public JCBlock body; |
1022 public List<JCCatch> catchers; |
1022 public List<JCCatch> catchers; |
1023 public JCBlock finalizer; |
1023 public JCBlock finalizer; |
1024 protected JCTry(JCBlock body, List<JCCatch> catchers, JCBlock finalizer) { |
1024 public List<JCTree> resources; |
|
1025 protected JCTry(List<JCTree> resources, |
|
1026 JCBlock body, |
|
1027 List<JCCatch> catchers, |
|
1028 JCBlock finalizer) { |
1025 this.body = body; |
1029 this.body = body; |
1026 this.catchers = catchers; |
1030 this.catchers = catchers; |
1027 this.finalizer = finalizer; |
1031 this.finalizer = finalizer; |
|
1032 this.resources = resources; |
1028 } |
1033 } |
1029 @Override |
1034 @Override |
1030 public void accept(Visitor v) { v.visitTry(this); } |
1035 public void accept(Visitor v) { v.visitTry(this); } |
1031 |
1036 |
1032 public Kind getKind() { return Kind.TRY; } |
1037 public Kind getKind() { return Kind.TRY; } |
1036 } |
1041 } |
1037 public JCBlock getFinallyBlock() { return finalizer; } |
1042 public JCBlock getFinallyBlock() { return finalizer; } |
1038 @Override |
1043 @Override |
1039 public <R,D> R accept(TreeVisitor<R,D> v, D d) { |
1044 public <R,D> R accept(TreeVisitor<R,D> v, D d) { |
1040 return v.visitTry(this, d); |
1045 return v.visitTry(this, d); |
|
1046 } |
|
1047 @Override |
|
1048 public List<? extends JCTree> getResources() { |
|
1049 return resources; |
1041 } |
1050 } |
1042 @Override |
1051 @Override |
1043 public int getTag() { |
1052 public int getTag() { |
1044 return TRY; |
1053 return TRY; |
1045 } |
1054 } |
2160 JCLabeledStatement Labelled(Name label, JCStatement body); |
2169 JCLabeledStatement Labelled(Name label, JCStatement body); |
2161 JCSwitch Switch(JCExpression selector, List<JCCase> cases); |
2170 JCSwitch Switch(JCExpression selector, List<JCCase> cases); |
2162 JCCase Case(JCExpression pat, List<JCStatement> stats); |
2171 JCCase Case(JCExpression pat, List<JCStatement> stats); |
2163 JCSynchronized Synchronized(JCExpression lock, JCBlock body); |
2172 JCSynchronized Synchronized(JCExpression lock, JCBlock body); |
2164 JCTry Try(JCBlock body, List<JCCatch> catchers, JCBlock finalizer); |
2173 JCTry Try(JCBlock body, List<JCCatch> catchers, JCBlock finalizer); |
|
2174 JCTry Try(List<JCTree> resources, |
|
2175 JCBlock body, |
|
2176 List<JCCatch> catchers, |
|
2177 JCBlock finalizer); |
2165 JCCatch Catch(JCVariableDecl param, JCBlock body); |
2178 JCCatch Catch(JCVariableDecl param, JCBlock body); |
2166 JCConditional Conditional(JCExpression cond, |
2179 JCConditional Conditional(JCExpression cond, |
2167 JCExpression thenpart, |
2180 JCExpression thenpart, |
2168 JCExpression elsepart); |
2181 JCExpression elsepart); |
2169 JCIf If(JCExpression cond, JCStatement thenpart, JCStatement elsepart); |
2182 JCIf If(JCExpression cond, JCStatement thenpart, JCStatement elsepart); |