KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > finalist > jaggenerator > template > TemplateConfigParameter


1 /* Copyright (C) 2003 Finalist IT Group
2  *
3  * This file is part of JAG - the Java J2EE Application Generator
4  *
5  * JAG is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  * JAG is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  * You should have received a copy of the GNU General Public License
14  * along with JAG; if not, write to the Free Software
15  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16  */

17 package com.finalist.jaggenerator.template;
18
19 import java.util.HashMap JavaDoc;
20
21
22 /**
23  * This bean represents a single configurable parameter,
24  * as specified in a template's "template.xml".
25  *
26  * @author Michael O'Connor - Finalist IT Group
27  */

28 public class TemplateConfigParameter {
29
30    /**
31     * The 'type' value for a parameter whose value is determined by entering text into an input field.
32     */

33    public static final Type TYPE_TEXT = new Type("text");
34    /**
35     * The 'type' value for a parameter whose value is determined by clicking an on/off checkbox.
36     */

37    public static final Type TYPE_CHECKBOX = new Type("checkbox");
38    /**
39     * The 'type' value for a parameter whose value is determined by selecting an item from a predefined list.
40     */

41    public static final Type TYPE_LIST = new Type("list");
42    /**
43     * The 'type' value for a parameter whose value is determined by either:
44     * <li>selecting an item from a predefined list, or </li>
45     * <li>typing in a 'free text' value</li>
46     */

47    public static final Type TYPE_EDITABLE_LIST = new Type("list-editable");
48
49    private static final HashMap JavaDoc types = new HashMap JavaDoc();
50    static {
51       types.put(TYPE_TEXT.toString(), TYPE_TEXT);
52       types.put(TYPE_CHECKBOX.toString(), TYPE_CHECKBOX);
53       types.put(TYPE_LIST.toString(), TYPE_LIST);
54       types.put(TYPE_EDITABLE_LIST.toString(), TYPE_EDITABLE_LIST);
55    }
56
57    private String JavaDoc id;
58    private String JavaDoc name;
59    private String JavaDoc description;
60    private Type type;
61    private String JavaDoc[] presetValues;
62    private String JavaDoc value;
63
64
65    /**
66     * Gets the id - the unique identifier of this parameter used to access the parameter value
67     * from the templates.
68     *
69     * @return id
70     */

71    public String JavaDoc getId() {
72       return id;
73    }
74
75    /**
76     * Sets the id - the unique identifier of this parameter used to access the parameter value
77     * from the templates. This value should be a String following the same naming conventions
78     * as a Java bean attribute (e.g. no spaces, hyphens, etc.).
79     *
80     * @param id
81     */

82    public void setId(String JavaDoc id) {
83       this.id = id;
84    }
85
86    /**
87     * Gets the name - this is the human-readable short name used to represent this parameter in the GUI.
88     *
89     * @return
90     */

91    public String JavaDoc getName() {
92       return name;
93    }
94
95    /**
96     * Sets the name - this is the human-readable short name used to represent this parameter in the GUI.
97     *
98     * @param name
99     */

100    public void setName(String JavaDoc name) {
101       this.name = name;
102    }
103
104    /**
105     * Gets the description for this parameter - shows up in the GUI as a tooltip.
106     *
107     * @return
108     */

109    public String JavaDoc getDescription() {
110       return description;
111    }
112
113    /**
114     * Sets the description for this parameter - shows up in the GUI as a tooltip.
115     *
116     * @param description
117     */

118    public void setDescription(String JavaDoc description) {
119       this.description = description;
120    }
121
122    /**
123     * Gets the type of this configuration parameter.
124     *
125     * @return one of the TYPE_XXX constants defined in this class.
126     */

127    public TemplateConfigParameter.Type getType() {
128       return type;
129    }
130
131    /**
132     * Sets the type of this configuration parameter.
133     *
134     * @param type - Use one of the TYPE_XXX constants defined in this class.
135     */

136    public void setType(TemplateConfigParameter.Type type) {
137       this.type = type;
138    }
139
140    /**
141     * Gets the preset values for this parameter.
142     *
143     * @return a String[] (may have length zero, never <code>null</code>).
144     */

145    public String JavaDoc[] getPresetValues() {
146       return presetValues;
147    }
148
149    public void setPresetValues(String JavaDoc[] presetValues) {
150       this.presetValues = presetValues;
151    }
152
153    public String JavaDoc getValue() {
154       return value;
155    }
156
157    public void setValue(String JavaDoc value) {
158       this.value = value;
159    }
160
161    /**
162     * Translates a type's name into the corresponding Type object.
163     *
164     * @param name
165     * @return <code>null</code> if the name is not a valid Type.
166     */

167    public static Type getTypeByName(String JavaDoc name) {
168       return (Type) types.get(name);
169    }
170
171
172    /** Objects of this class are used to determine a TemplateConfigParamater's type */
173    private final static class Type {
174       private String JavaDoc type;
175
176       private Type(String JavaDoc type) {
177          this.type = type;
178       }
179
180       public String JavaDoc toString() {
181          return type;
182       }
183    }
184
185 }
186
Popular Tags