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: /**
24: * Catch block for a try/catch/finally statement
25: */
26:
27: public class JCatchBlock implements JGenerable {
28:
29: JClass exception;
30: private JVar var = null;
31: private JBlock body = new JBlock();
32:
33: JCatchBlock(JClass exception) {
34: this .exception = exception;
35: }
36:
37: public JVar param(String name) {
38: if (var != null)
39: throw new IllegalStateException();
40: var = new JVar(JMods.forVar(JMod.NONE), exception, name, null);
41: return var;
42: }
43:
44: public JBlock body() {
45: return body;
46: }
47:
48: public void generate(JFormatter f) {
49: if (var == null)
50: var = new JVar(JMods.forVar(JMod.NONE), exception, "_x",
51: null);
52: f.p("catch (").b(var).p(')').g(body);
53: }
54:
55: }
|