View Javadoc

1   /*
2    * $Id: TestBean.java 471754 2006-11-06 14:55:09Z husted $
3    *
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *  http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  package org.apache.struts.webapp.el.exercise;
23  
24  
25  import org.apache.struts.action.ActionForm;
26  import org.apache.struts.action.ActionMapping;
27  import org.apache.struts.util.LabelValueBean;
28  
29  import javax.servlet.http.HttpServletRequest;
30  import java.util.Collection;
31  import java.util.Vector;
32  
33  
34  /**
35   * General purpose test bean for Struts custom tag tests.
36   *
37   * @author Craig R. McClanahan
38   * @author Martin F N Cooper
39   * @version $Rev: 471754 $ $Date: 2004-10-16 13:04:52 -0400 (Sat, 16 Oct 2004)
40   *          $
41   */
42  
43  public class TestBean extends ActionForm {
44  
45      // ------------------------------------------------------------- Properties
46  
47  
48      /**
49       * A collection property where the elements of the collection are of type
50       * <code>LabelValueBean</code>.
51       */
52      private Collection beanCollection = null;
53  
54      public Collection getBeanCollection() {
55          if (beanCollection == null) {
56              Vector entries = new Vector(10);
57  
58              entries.add(new LabelValueBean("Label 0", "Value 0"));
59              entries.add(new LabelValueBean("Label 1", "Value 1"));
60              entries.add(new LabelValueBean("Label 2", "Value 2"));
61              entries.add(new LabelValueBean("Label 3", "Value 3"));
62              entries.add(new LabelValueBean("Label 4", "Value 4"));
63              entries.add(new LabelValueBean("Label 5", "Value 5"));
64              entries.add(new LabelValueBean("Label 6", "Value 6"));
65              entries.add(new LabelValueBean("Label 7", "Value 7"));
66              entries.add(new LabelValueBean("Label 8", "Value 8"));
67              entries.add(new LabelValueBean("Label 9", "Value 9"));
68  
69              beanCollection = entries;
70          }
71  
72          return (beanCollection);
73      }
74  
75      public void setBeanCollection(Collection beanCollection) {
76          this.beanCollection = beanCollection;
77      }
78  
79  
80      /**
81       * A multiple-String SELECT element using a bean collection.
82       */
83      private String[] beanCollectionSelect = { "Value 1", "Value 3",
84              "Value 5" };
85  
86      public String[] getBeanCollectionSelect() {
87          return (this.beanCollectionSelect);
88      }
89  
90      public void setBeanCollectionSelect(String beanCollectionSelect[]) {
91          this.beanCollectionSelect = beanCollectionSelect;
92      }
93  
94  
95      /**
96       * A boolean property whose initial value is true.
97       */
98      private boolean booleanProperty = true;
99  
100     public boolean getBooleanProperty() {
101         return (booleanProperty);
102     }
103 
104     public void setBooleanProperty(boolean booleanProperty) {
105         this.booleanProperty = booleanProperty;
106     }
107 
108 
109     /**
110      * A multiple-String SELECT element using a collection.
111      */
112     private String[] collectionSelect = { "Value 2", "Value 4",
113             "Value 6" };
114 
115     public String[] getCollectionSelect() {
116         return (this.collectionSelect);
117     }
118 
119     public void setCollectionSelect(String collectionSelect[]) {
120         this.collectionSelect = collectionSelect;
121     }
122 
123 
124     /**
125      * A double property.
126      */
127     private double doubleProperty = 321.0;
128 
129     public double getDoubleProperty() {
130         return (this.doubleProperty);
131     }
132 
133     public void setDoubleProperty(double doubleProperty) {
134         this.doubleProperty = doubleProperty;
135     }
136 
137 
138     /**
139      * A boolean property whose initial value is false
140      */
141     private boolean falseProperty = false;
142 
143     public boolean getFalseProperty() {
144         return (falseProperty);
145     }
146 
147     public void setFalseProperty(boolean falseProperty) {
148         this.falseProperty = falseProperty;
149     }
150 
151 
152     /**
153      * A float property.
154      */
155     private float floatProperty = (float) 123.0;
156 
157     public float getFloatProperty() {
158         return (this.floatProperty);
159     }
160 
161     public void setFloatProperty(float floatProperty) {
162         this.floatProperty = floatProperty;
163     }
164 
165 
166     /**
167      * Integer arrays that are accessed as an array as well as indexed.
168      */
169     private int intArray[] = { 0, 10, 20, 30, 40 };
170 
171     public int[] getIntArray() {
172         return (this.intArray);
173     }
174 
175     public void setIntArray(int intArray[]) {
176         this.intArray = intArray;
177     }
178 
179     private int intIndexed[] = { 0, 10, 20, 30, 40 };
180 
181     public int getIntIndexed(int index) {
182         return (intIndexed[index]);
183     }
184 
185     public void setIntIndexed(int index, int value) {
186         intIndexed[index] = value;
187     }
188 
189 
190     private int intMultibox[] = new int[0];
191 
192     public int[] getIntMultibox() {
193         return (this.intMultibox);
194     }
195 
196     public void setIntMultibox(int intMultibox[]) {
197         this.intMultibox = intMultibox;
198     }
199 
200     /**
201      * An integer property.
202      */
203     private int intProperty = 123;
204 
205     public int getIntProperty() {
206         return (this.intProperty);
207     }
208 
209     public void setIntProperty(int intProperty) {
210         this.intProperty = intProperty;
211     }
212 
213 
214     /**
215      * A long property.
216      */
217     private long longProperty = 321;
218 
219     public long getLongProperty() {
220         return (this.longProperty);
221     }
222 
223     public void setLongProperty(long longProperty) {
224         this.longProperty = longProperty;
225     }
226 
227 
228     /**
229      * A multiple-String SELECT element.
230      */
231     private String[] multipleSelect = { "Multiple 3", "Multiple 5",
232             "Multiple 7" };
233 
234     public String[] getMultipleSelect() {
235         return (this.multipleSelect);
236     }
237 
238     public void setMultipleSelect(String multipleSelect[]) {
239         this.multipleSelect = multipleSelect;
240     }
241 
242 
243     /**
244      * A nested reference to another test bean (populated as needed).
245      */
246     private TestBean nested = null;
247 
248     public TestBean getNested() {
249         if (nested == null) {
250             nested = new TestBean();
251         }
252         return (nested);
253     }
254 
255 
256     /**
257      * A String property with an initial value of null.
258      */
259     private String nullProperty = null;
260 
261     public String getNullProperty() {
262         return (this.nullProperty);
263     }
264 
265     public void setNullProperty(String nullProperty) {
266         this.nullProperty = nullProperty;
267     }
268 
269 
270     /**
271      * A short property.
272      */
273     private short shortProperty = (short) 987;
274 
275     public short getShortProperty() {
276         return (this.shortProperty);
277     }
278 
279     public void setShortProperty(short shortProperty) {
280         this.shortProperty = shortProperty;
281     }
282 
283 
284     /**
285      * A single-String value for a SELECT element.
286      */
287     private String singleSelect = "Single 5";
288 
289     public String getSingleSelect() {
290         return (this.singleSelect);
291     }
292 
293     public void setSingleSelect(String singleSelect) {
294         this.singleSelect = singleSelect;
295     }
296 
297 
298     /**
299      * String arrays that are accessed as an array as well as indexed.
300      */
301     private String stringArray[] =
302             { "String 0", "String 1", "String 2", "String 3", "String 4" };
303 
304     public String[] getStringArray() {
305         return (this.stringArray);
306     }
307 
308     public void setStringArray(String stringArray[]) {
309         this.stringArray = stringArray;
310     }
311 
312     private String stringIndexed[] =
313             { "String 0", "String 1", "String 2", "String 3", "String 4" };
314 
315     public String getStringIndexed(int index) {
316         return (stringIndexed[index]);
317     }
318 
319     public void setStringIndexed(int index, String value) {
320         stringIndexed[index] = value;
321     }
322 
323     private String indexedStrings[] =
324             { "alpha", "beta", "gamma", "delta", "epsilon" };
325 
326     public String[] getIndexedStrings() {
327         return (indexedStrings);
328     }
329 
330     private String stringMultibox[] = new String[0];
331 
332     public String[] getStringMultibox() {
333         return (this.stringMultibox);
334     }
335 
336     public void setStringMultibox(String stringMultibox[]) {
337         this.stringMultibox = stringMultibox;
338     }
339 
340     /**
341      * A String property.
342      */
343     private String stringProperty = "This is a string";
344 
345     public String getStringProperty() {
346         return (this.stringProperty);
347     }
348 
349     public void setStringProperty(String stringProperty) {
350         this.stringProperty = stringProperty;
351     }
352 
353     /**
354      * An empty String property.
355      */
356     private String emptyStringProperty = "";
357 
358     public String getEmptyStringProperty() {
359         return (this.emptyStringProperty);
360     }
361 
362     public void setEmptyStringProperty(String emptyStringProperty) {
363         this.emptyStringProperty = emptyStringProperty;
364     }
365 
366     /**
367      * A list of coordinate objects.
368      */
369     private Coord[] coords =
370             { new Coord(0, 0), new Coord(0, 1), new Coord(1, 1),
371                     new Coord(2, 0),
372                     new Coord(2, 1)
373             };
374 
375     public Coord[]  getCoords() {
376         return (coords);
377     }
378 
379     public Coord getCoord(int index) {
380         return (coords[index]);
381     }
382 
383     public void setCoord(int index, Coord coord) {
384         coords[index] = coord;
385     }
386 
387     /**
388      * A list of images.
389      */
390     public String images[] = { "T1.gif", "T2.gif" };
391 
392     public String[] getImages() {
393         return (images);
394     }
395 
396     private Coord[] imageCoords = { new Coord(0, 0), new Coord(0, 0) };
397 
398     public Coord[]  getImageCoords() {
399         return (imageCoords);
400     }
401 
402     public Coord getImageCoord(int index) {
403         return (imageCoords[index]);
404     }
405 
406     public void setImageCoord(int index, Coord coord) {
407         imageCoords[index] = coord;
408     }
409 
410     /**
411      * A property that allows a null value but is still used in a SELECT.
412      */
413     private String withNulls = null;
414 
415     public String getWithNulls() {
416         return (this.withNulls);
417     }
418 
419     public void setWithNulls(String withNulls) {
420         this.withNulls = withNulls;
421     }
422 
423     // --------------------------------------------------------- Public Methods
424 
425 
426     /**
427      * Reset the properties that will be received as input.
428      */
429     public void reset(ActionMapping mapping, HttpServletRequest request) {
430 
431         booleanProperty = false;
432         collectionSelect = new String[0];
433         intMultibox = new int[0];
434         multipleSelect = new String[0];
435         stringMultibox = new String[0];
436         if (nested != null) {
437             nested.reset(mapping, request);
438         }
439 
440     }
441 
442 
443 }