1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.struts.action;
22
23 import java.io.Serializable;
24
25 /**
26 * <p>An encapsulation of an individual message returned by the
27 * <code>validate</code> method of an <code>ActionForm</code>, consisting of a
28 * message key (to be used to look up message text in an appropriate message
29 * resources database) plus up to four placeholder objects that can be used
30 * for parametric replacement in the message text.</p>
31 *
32 * @version $Rev: 471754 $ $Date: 2005-05-14 01:09:32 -0400 (Sat, 14 May 2005)
33 * $
34 * @since Struts 1.1
35 */
36 public class ActionMessage implements Serializable {
37
38
39 /**
40 * <p>The message key for this message.</p>
41 */
42 protected String key = null;
43
44 /**
45 * <p>The replacement values for this mesasge.</p>
46 */
47 protected Object[] values = null;
48
49 /**
50 * <p>Indicates whether the key is taken to be as a bundle key [true] or
51 * literal value [false].</p>
52 */
53 protected boolean resource = true;
54
55
56
57 /**
58 * <p>Construct an action message with no replacement values.</p>
59 *
60 * @param key Message key for this message
61 */
62 public ActionMessage(String key) {
63 this(key, null);
64 }
65
66 /**
67 * <p>Construct an action message with the specified replacement
68 * values.</p>
69 *
70 * @param key Message key for this message
71 * @param value0 First replacement value
72 */
73 public ActionMessage(String key, Object value0) {
74 this(key, new Object[] { value0 });
75 }
76
77 /**
78 * <p>Construct an action message with the specified replacement
79 * values.</p>
80 *
81 * @param key Message key for this message
82 * @param value0 First replacement value
83 * @param value1 Second replacement value
84 */
85 public ActionMessage(String key, Object value0, Object value1) {
86 this(key, new Object[] { value0, value1 });
87 }
88
89 /**
90 * <p>Construct an action message with the specified replacement
91 * values.</p>
92 *
93 * @param key Message key for this message
94 * @param value0 First replacement value
95 * @param value1 Second replacement value
96 * @param value2 Third replacement value
97 */
98 public ActionMessage(String key, Object value0, Object value1, Object value2) {
99 this(key, new Object[] { value0, value1, value2 });
100 }
101
102 /**
103 * <p>Construct an action message with the specified replacement
104 * values.</p>
105 *
106 * @param key Message key for this message
107 * @param value0 First replacement value
108 * @param value1 Second replacement value
109 * @param value2 Third replacement value
110 * @param value3 Fourth replacement value
111 */
112 public ActionMessage(String key, Object value0, Object value1,
113 Object value2, Object value3) {
114 this(key, new Object[] { value0, value1, value2, value3 });
115 }
116
117 /**
118 * <p>Construct an action message with the specified replacement
119 * values.</p>
120 *
121 * @param key Message key for this message
122 * @param values Array of replacement values
123 */
124 public ActionMessage(String key, Object[] values) {
125 this.key = key;
126 this.values = values;
127 this.resource = true;
128 }
129
130 /**
131 * <p>Construct an action message with the specified replacement
132 * values.</p>
133 *
134 * @param key Message key for this message
135 * @param resource Indicates whether the key is a bundle key or literal
136 * value
137 */
138 public ActionMessage(String key, boolean resource) {
139 this.key = key;
140 this.resource = resource;
141 }
142
143
144
145 /**
146 * <p>Get the message key for this message.</p>
147 *
148 * @return The message key for this message.
149 */
150 public String getKey() {
151 return (this.key);
152 }
153
154 /**
155 * <p>Get the replacement values for this message.</p>
156 *
157 * @return The replacement values for this message.
158 */
159 public Object[] getValues() {
160 return (this.values);
161 }
162
163 /**
164 * <p>Indicate whether the key is taken to be as a bundle key [true] or
165 * literal value [false].</p>
166 *
167 * @return <code>true</code> if the key is a bundle key;
168 * <code>false</code> otherwise.
169 */
170 public boolean isResource() {
171 return (this.resource);
172 }
173
174 /**
175 * <p>Returns a String in the format: key[value1, value2, etc].</p>
176 *
177 * @return String representation of this message
178 * @see java.lang.Object#toString()
179 */
180 public String toString() {
181 StringBuffer buff = new StringBuffer();
182
183 buff.append(this.key);
184 buff.append("[");
185
186 if (this.values != null) {
187 for (int i = 0; i < this.values.length; i++) {
188 buff.append(this.values[i]);
189
190
191 if (i < (this.values.length - 1)) {
192 buff.append(", ");
193 }
194 }
195 }
196
197 buff.append("]");
198
199 return buff.toString();
200 }
201 }