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