01: /*
02: * The contents of this file are subject to the terms
03: * of the Common Development and Distribution License
04: * (the "License"). You may not use this file except
05: * in compliance with the License.
06: *
07: * You can obtain a copy of the license at
08: * https://jwsdp.dev.java.net/CDDLv1.0.html
09: * See the License for the specific language governing
10: * permissions and limitations under the License.
11: *
12: * When distributing Covered Code, include this CDDL
13: * HEADER in each file and include the License file at
14: * https://jwsdp.dev.java.net/CDDLv1.0.html If applicable,
15: * add the following below this CDDL HEADER, with the
16: * fields enclosed by brackets "[]" replaced with your
17: * own identifying information: Portions Copyright [yyyy]
18: * [name of copyright owner]
19: */
20:
21: package com.sun.codemodel;
22:
23: import java.util.ArrayList;
24: import java.util.List;
25:
26: /**
27: * Try statement with Catch and/or Finally clause
28: */
29:
30: public class JTryBlock implements JStatement {
31:
32: private JBlock body = new JBlock();
33: private List<JCatchBlock> catches = new ArrayList<JCatchBlock>();
34: private JBlock _finally = null;
35:
36: JTryBlock() {
37: }
38:
39: public JBlock body() {
40: return body;
41: }
42:
43: public JCatchBlock _catch(JClass exception) {
44: JCatchBlock cb = new JCatchBlock(exception);
45: catches.add(cb);
46: return cb;
47: }
48:
49: public JBlock _finally() {
50: if (_finally == null)
51: _finally = new JBlock();
52: return _finally;
53: }
54:
55: public void state(JFormatter f) {
56: f.p("try").g(body);
57: for (JCatchBlock cb : catches)
58: f.g(cb);
59: if (_finally != null)
60: f.p("finally").g(_finally);
61: f.nl();
62: }
63:
64: }
|