View Javadoc

1   /*
2    * $Id: SubscriptionForm.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  
23  package org.apache.struts.webapp.example;
24  
25  
26  import javax.servlet.http.HttpServletRequest;
27  import org.apache.struts.action.ActionErrors;
28  import org.apache.struts.action.ActionMessage;
29  import org.apache.struts.action.ActionForm;
30  import org.apache.struts.action.ActionMapping;
31  
32  
33  /**
34   * Form bean for the user profile page.  This form has the following fields,
35   * with default values in square brackets:
36   * <ul>
37   * <li><b>action</b> - The maintenance action we are performing (Create, Delete,
38   *     or Edit).
39   * <li><b>host</b> - The mail host for this subscription.  [REQUIRED]
40   * <li><b>password</b> - The password for this subscription.  [REQUIRED]
41   * <li><b>type</b> - The subscription type (imap,pop3)
42         for this subscription.  [REQUIRED]
43   * <li><b>username</b> - The username of this subscription.  [REQUIRED]
44   * </ul>
45   *
46   * @author Craig R. McClanahan
47   * @version $Rev: 471754 $ $Date: 2006-11-06 08:55:09 -0600 (Mon, 06 Nov 2006) $
48   */
49  
50  public final class SubscriptionForm extends ActionForm  {
51  
52  
53      // --------------------------------------------------- Instance Variables
54  
55  
56      /**
57       * The maintenance action we are performing (Create or Edit).
58       */
59      private String action = "Create";
60  
61  
62      /**
63       * Should we auto-connect at startup time?
64       */
65      private boolean autoConnect = false;
66  
67  
68      /**
69       * The host name.
70       */
71      private String host = null;
72  
73  
74      /**
75       * The password.
76       */
77      private String password = null;
78  
79  
80      /**
81       * The subscription type.
82       */
83      private String type = null;
84  
85  
86      /**
87       * The username.
88       */
89      private String username = null;
90  
91  
92      // ----------------------------------------------------------- Properties
93  
94  
95      /**
96       * Return the maintenance action.
97       */
98      public String getAction() {
99  
100     return (this.action);
101 
102     }
103 
104 
105     /**
106      * Set the maintenance action.
107      *
108      * @param action The new maintenance action.
109      */
110     public void setAction(String action) {
111 
112         this.action = action;
113 
114     }
115 
116 
117     /**
118      * Return the auto-connect flag.
119      */
120     public boolean getAutoConnect() {
121 
122         return (this.autoConnect);
123 
124     }
125 
126 
127     /**
128      * Set the auto-connect flag.
129      *
130      * @param autoConnect The new auto-connect flag
131      */
132     public void setAutoConnect(boolean autoConnect) {
133 
134         this.autoConnect = autoConnect;
135     }
136 
137 
138     /**
139      * Return the host name.
140      */
141     public String getHost() {
142 
143     return (this.host);
144 
145     }
146 
147 
148     /**
149      * Set the host name.
150      *
151      * @param host The host name
152      */
153     public void setHost(String host) {
154 
155         this.host = host;
156 
157     }
158 
159 
160     /**
161      * Return the password.
162      */
163     public String getPassword() {
164 
165     return (this.password);
166 
167     }
168 
169 
170     /**
171      * Set the password.
172      *
173      * @param password The new password
174      */
175     public void setPassword(String password) {
176 
177         this.password = password;
178 
179     }
180 
181 
182     /**
183      * Return the subscription type.
184      */
185     public String getType() {
186 
187     return (this.type);
188 
189     }
190 
191 
192     /**
193      * Set the subscription type.
194      *
195      * @param type The subscription type
196      */
197     public void setType(String type) {
198 
199         this.type = type;
200 
201     }
202 
203 
204     /**
205      * Return the username.
206      */
207     public String getUsername() {
208 
209     return (this.username);
210 
211     }
212 
213 
214     /**
215      * Set the username.
216      *
217      * @param username The new username
218      */
219     public void setUsername(String username) {
220 
221         this.username = username;
222 
223     }
224 
225 
226     // --------------------------------------------------------- Public Methods
227 
228 
229     /**
230      * Reset all properties to their default values.
231      *
232      * @param mapping The mapping used to select this instance
233      * @param request The servlet request we are processing
234      */
235     public void reset(ActionMapping mapping, HttpServletRequest request) {
236 
237         this.action = "Create";
238         this.autoConnect = false;
239         this.host = null;
240         this.password = null;
241         this.type = null;
242         this.username = null;
243 
244     }
245 
246 
247     /**
248      * Validate the properties that have been set from this HTTP request,
249      * and return an <code>ActionMessages</code> object that encapsulates any
250      * validation errors that have been found.  If no errors are found, return
251      * <code>null</code> or an <code>ActionMessages</code> object with no
252      * recorded error messages.
253      *
254      * @param mapping The mapping used to select this instance
255      * @param request The servlet request we are processing
256      */
257     public ActionErrors validate(ActionMapping mapping,
258                                  HttpServletRequest request) {
259 
260         ActionErrors errors = new ActionErrors();
261 
262     if ((host == null) || (host.length() < 1))
263             errors.add("host",
264                        new ActionMessage("error.host.required"));
265     if ((username == null) || (username.length() < 1))
266             errors.add("username",
267                        new ActionMessage("error.username.required"));
268     if ((password == null) || (password.length() < 1))
269             errors.add("password",
270                        new ActionMessage("error.password.required"));
271     if ((type == null) || (type.length() < 1))
272             errors.add("type",
273                        new ActionMessage("error.type.required"));
274     else if (!"imap".equals(type) && !"pop3".equals(type))
275             errors.add("type",
276                        new ActionMessage("error.type.invalid", type));
277 
278     return (errors);
279 
280     }
281 
282 
283     /**
284      * <p>Return a string representation of this form bean.</p>
285      */
286     public String toString() {
287 
288         StringBuffer sb = new StringBuffer(super.toString());
289         sb.append(",action=");
290         sb.append(action);
291         sb.append(",autoConnect=");
292         sb.append(autoConnect);
293         sb.append(",host=");
294         sb.append(host);
295         sb.append(",password=");
296         sb.append(password);
297         sb.append(",type=");
298         sb.append(type);
299         sb.append(",username=");
300         sb.append(username);
301         return (sb.toString());
302 
303     }
304 
305 
306 }
307