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: * Do loops
25: */
26:
27: public class JDoLoop implements JStatement {
28:
29: /**
30: * Test part of Do statement for determining exit state
31: */
32: private JExpression test;
33:
34: /**
35: * JBlock of statements which makes up body of this Do statement
36: */
37: private JBlock body = null;
38:
39: /**
40: * Construct a Do statment
41: */
42: JDoLoop(JExpression test) {
43: this .test = test;
44: }
45:
46: public JBlock body() {
47: if (body == null)
48: body = new JBlock();
49: return body;
50: }
51:
52: public void state(JFormatter f) {
53: f.p("do");
54: if (body != null)
55: f.g(body);
56: else
57: f.p("{ }");
58:
59: if (JOp.hasTopOp(test)) {
60: f.p("while ").g(test);
61: } else {
62: f.p("while (").g(test).p(')');
63: }
64: f.p(';').nl();
65: }
66:
67: }
|