1 /*
2 * $Id: BasicMessage.java 366395 2006-01-06 02:42:19Z niallp $
3 * $Revision: 366395 $
4 * $Date: 2006-01-06 02:42:19 +0000 (Fri, 06 Jan 2006) $
5 *
6 * ====================================================================
7 *
8 * Copyright 2003-2006 The Apache Software Foundation
9 *
10 * Licensed under the Apache License, Version 2.0 (the "License");
11 * you may not use this file except in compliance with the License.
12 * You may obtain a copy of the License at
13 *
14 * http://www.apache.org/licenses/LICENSE-2.0
15 *
16 * Unless required by applicable law or agreed to in writing, software
17 * distributed under the License is distributed on an "AS IS" BASIS,
18 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 * See the License for the specific language governing permissions and
20 * limitations under the License.
21 *
22 */
23
24 package org.apache.commons.resources.impl;
25
26 import java.io.Serializable;
27
28 import org.apache.commons.resources.Message;
29
30 /**
31 * A basic implementation of the Message interface.
32 * <p>
33 * Orginally based on org.apache.struts.action.ActionMessage, Revision 49176.
34 */
35 public class BasicMessage implements Serializable, Message {
36
37 /**
38 * The logical name of the {@link org.apache.commons.resources.Resources}
39 * instance this message is associated with (optional).
40 */
41 private String resourcesName;
42
43 /**
44 * The message key for this message.
45 */
46 private String key = null;
47
48 /**
49 * The replacement values for this message.
50 */
51 private Object[] values = null;
52
53 /**
54 * Default Constructor.
55 */
56 public BasicMessage() {
57 super();
58 }
59
60 /**
61 * Construct a message with no replacement values.
62 *
63 * @param key Message key for this message
64 */
65 public BasicMessage(String key) {
66
67 this.key = key;
68 this.values = null;
69
70 }
71
72 /**
73 * Construct a message with the specified replacement values.
74 *
75 * @param key Message key for this message
76 * @param value0 First replacement value
77 */
78 public BasicMessage(String key, Object value0) {
79
80 this.key = key;
81 this.values = new Object[]{value0};
82
83 }
84
85 /**
86 * Construct a message with the specified replacement values.
87 *
88 * @param key Message key for this message
89 * @param value0 First replacement value
90 * @param value1 Second replacement value
91 */
92 public BasicMessage(String key, Object value0, Object value1) {
93
94 this.key = key;
95 this.values = new Object[]{value0, value1};
96
97 }
98
99 /**
100 * Construct a message with the specified replacement values.
101 *
102 * @param key Message key for this message
103 * @param value0 First replacement value
104 * @param value1 Second replacement value
105 * @param value2 Third replacement value
106 */
107 public BasicMessage(String key, Object value0, Object value1,
108 Object value2) {
109
110 this.key = key;
111 this.values = new Object[]{value0, value1, value2};
112
113 }
114
115 /**
116 * Construct a message with the specified replacement values.
117 *
118 * @param key Message key for this message
119 * @param value0 First replacement value
120 * @param value1 Second replacement value
121 * @param value2 Third replacement value
122 * @param value3 Fourth replacement value
123 */
124 public BasicMessage(String key, Object value0, Object value1,
125 Object value2, Object value3) {
126
127 this.key = key;
128 this.values = new Object[]{value0, value1, value2, value3};
129 }
130
131 /**
132 * Construct a message with the specified replacement values.
133 *
134 * @param key Message key for this message
135 * @param values Array of replacement values
136 */
137 public BasicMessage(String key, Object[] values) {
138 this.key = key;
139 this.values = values;
140 }
141
142 /**
143 * <p>Return the logical name of the {@link org.apache.commons.resources.Resources}
144 * instance this message is associated with.</p>
145 *
146 * @return The name of the resources instance.
147 */
148 public String getResourcesName() {
149 return resourcesName;
150 }
151
152 /**
153 * <p>Set the logical name of the {@link org.apache.commons.resources.Resources}
154 * instance this message is associated with.</p>
155 *
156 * @param resourcesName The name of the resources instance.
157 */
158 public void setResourcesName(String resourcesName) {
159 this.resourcesName = resourcesName;
160 }
161
162 /**
163 * @return Get the message key for this message.
164 */
165 public String getKey() {
166 return (this.key);
167 }
168
169 /**
170 * Set the key for the message.
171 *
172 * @param key The key to set.
173 */
174 public void setKey(String key) {
175 this.key = key;
176 }
177
178 /**
179 * @return Get the replacement values for this message.
180 */
181 public Object[] getValues() {
182 return (this.values);
183 }
184
185 /**
186 * @param values The replacement values for this message.
187 */
188 public void setValues(Object[] values) {
189 this.values = values;
190 }
191
192 /**
193 * Returns a String in the format: resourcesName:key[value0, value1, etc].
194 * @see java.lang.Object#toString()
195 */
196 public String toString() {
197 StringBuffer buff = new StringBuffer();
198 if (this.resourcesName != null) {
199 buff.append(this.resourcesName);
200 buff.append(":");
201 }
202 buff.append(this.key);
203 buff.append("[");
204
205 if (this.values != null) {
206
207 for (int i = 0; i < this.values.length; i++) {
208
209 buff.append(this.values[i]);
210
211 // don't append comma to last entry
212 if (i < this.values.length - 1) {
213 buff.append(", ");
214 }
215
216 }
217 }
218
219 buff.append("]");
220
221 return buff.toString();
222 }
223
224 }