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: * array component reference.
25: */
26: final class JArrayCompRef extends JExpressionImpl implements
27: JAssignmentTarget {
28: /**
29: * JArray expression upon which this component will be accessed.
30: */
31: private final JExpression array;
32:
33: /**
34: * Integer expression representing index of the component
35: */
36: private final JExpression index;
37:
38: /**
39: * JArray component reference constructor given an array expression
40: * and index.
41: *
42: * @param array
43: * JExpression for the array upon which
44: * the component will be accessed,
45: *
46: * @param index
47: * JExpression for index of component to access
48: */
49: JArrayCompRef(JExpression array, JExpression index) {
50: if ((array == null) || (index == null)) {
51: throw new NullPointerException();
52: }
53: this .array = array;
54: this .index = index;
55: }
56:
57: public void generate(JFormatter f) {
58: f.g(array).p('[').g(index).p(']');
59: }
60:
61: public JExpression assign(JExpression rhs) {
62: return JExpr.assign(this , rhs);
63: }
64:
65: public JExpression assignPlus(JExpression rhs) {
66: return JExpr.assignPlus(this, rhs);
67: }
68: }
|