View Javadoc

1   ////////////////////////////////////////////////////////////////////////////////
2   //CabaWeb
3   //Copyright (C) 2004  Thomas Vogt <Thomas.Vogt@TVC-Software.com>
4   //
5   //This library is free software; you can redistribute it and/or
6   //modify it under the terms of the GNU Lesser General Public
7   //License as published by the Free Software Foundation; either
8   //version 2.1 of the License, or (at your option) any later version.
9   //
10  //This library is distributed in the hope that it will be useful,
11  //but WITHOUT ANY WARRANTY; without even the implied warranty of
12  //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  //Lesser General Public License for more details.
14  //
15  //You should have received a copy of the GNU Lesser General Public
16  //License along with this library; if not, write to the Free Software
17  //Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18  ////////////////////////////////////////////////////////////////////////////////
19  package org.fhw.cabaweb.webfrontend.forms.simple;
20  
21  import java.util.Iterator;
22  
23  import javax.servlet.http.HttpServletRequest;
24  
25  import org.apache.commons.logging.Log;
26  import org.apache.commons.logging.LogFactory;
27  import org.apache.struts.action.ActionError;
28  import org.apache.struts.action.ActionErrors;
29  import org.apache.struts.action.ActionForm;
30  import org.apache.struts.action.ActionMapping;
31  
32  /***
33   * Formularklasse der MVC Architektur von Struts.
34   * In diesem Fall für eine einzelne Benutzerrolle (Create/Delete/Edit einer Benutzerrolle)
35   *
36   * @author  <a href="mailto:thomas.vogt@tvc-software.com">Thomas Vogt</a>
37   * @version Version 1.0 02.07.2004
38   */
39  public final class BenutzerrolleForm extends ActionForm  
40  { 
41      /***
42       * The <code>Log</code> instance for this application.
43       */
44      private Log log = LogFactory.getLog("org.fhw.cabaweb.webfrontend.forms.simple");
45  
46      //--- Instanz Variablen --------------------------------------
47      /*** Art der Aktion die wir durchführen wollen (Create or Edit) - Default ist Create. */
48      private String action = "Create";
49      /*** Die RollenID */
50      private Integer rollenID = null;
51      /*** Der Rollenname */
52      private String rollenname = null;
53      /*** Benutzerrolle hat Administrationsrechte */
54      private Boolean admin = null;
55      /*** Benutzerrolle hat Projektleiterrechte */
56      private Boolean projektleiter = null;
57      /*** Benutzerrolle hat Gruppenmitgliedsrechte */
58      private Boolean gruppenmitglied = null;
59  
60      //--- Eigenschaften (Variablen) ------------------------------
61  
62      /*** 
63       * GET Methode 
64       *
65       * @return der Parameterwert 
66       */
67      public String getAction()
68      {
69          return this.action;
70      }
71  
72      /*** 
73       * GET Methode 
74       *
75       * @return der Parameterwert 
76       */
77      public Boolean getAdmin()
78      {
79          return this.admin;
80      }
81  
82      /*** 
83       * GET Methode 
84       *
85       * @return der Parameterwert 
86       */
87      public Boolean getGruppenmitglied()
88      {
89          return this.gruppenmitglied;
90      }
91  
92      /*** 
93       * GET Methode 
94       *
95       * @return der Parameterwert 
96       */
97      public Boolean getProjektleiter()
98      {
99          return this.projektleiter;
100     }
101 
102     /*** 
103      * GET Methode 
104      *
105      * @return der Parameterwert 
106      */
107     public Integer getRollenID()
108     {
109         return this.rollenID;
110     }
111 
112     /*** 
113      * GET Methode 
114      *
115      * @return der Parameterwert 
116      */
117     public String getRollenname()
118     {
119         return this.rollenname;
120     }
121 
122     /*** 
123      * SET Methode 
124      *
125      * @param action Der zu setzende Parameterwert 
126      */
127     public void setAction(String action)
128     {
129         this.action = action;
130     }
131 
132     /*** 
133      * SET Methode 
134      *
135      * @param admin Der zu setzende Parameterwert 
136      */
137     public void setAdmin(Boolean admin)
138     {
139         this.admin = admin;
140     }
141 
142     /*** 
143      * SET Methode 
144      *
145      * @param gruppenmitglied Der zu setzende Parameterwert 
146      */
147     public void setGruppenmitglied(Boolean gruppenmitglied)
148     {
149         this.gruppenmitglied = gruppenmitglied;
150     }
151 
152     /*** 
153      * SET Methode 
154      *
155      * @param projektleiter Der zu setzende Parameterwert 
156      */
157     public void setProjektleiter(Boolean projektleiter)
158     {
159         this.projektleiter = projektleiter;
160     }
161 
162     /*** 
163      * SET Methode 
164      *
165      * @param rollenID Der zu setzende Parameterwert 
166      */
167     public void setRollenID(Integer rollenID)
168     {
169         this.rollenID = rollenID;
170     }
171 
172     /*** 
173      * SET Methode 
174      *
175      * @param rollenname Der zu setzende Parameterwert 
176      */
177     public void setRollenname(String rollenname)
178     {
179         this.rollenname = rollenname;
180     }
181 
182     //--- Öffentliche Methoden -----------------------------------
183 
184     /***
185      * Zurücksetzen aller Parameterwerte auf die Default Werte.
186      *
187      * @param mapping Das Mapping das benutzt wurde um diese Instanz zu selektieren
188      * @param request Die Servlet Anfrage die wir gerade bearbeiten
189      */
190     public void reset(ActionMapping mapping, HttpServletRequest request) 
191     {
192         this.action = "Create";
193         this.rollenID = null;
194         this.rollenname = null;
195         this.admin = null;
196         this.projektleiter = null;
197         this.gruppenmitglied = null;
198     }
199 
200     /***
201      * Validieren der mit diesem Request übergebenen Paramter Werte. Wenn Fehler
202      * bei der Validierung auftreten wird <code>ActionErrors</code> Objekt, 
203      * das die Fehler enthält zurückgegeben.
204      * Wenn kein Fehler bei der Validierung auftritt wird <code>null</code> bzw.
205      * ein leeres <code>ActionErrors</code> Objekt zurückgegeben
206      *
207      * @param mapping Das Mapping das benutzt wurde um diese Instanz zu selektieren 
208      *                (siehe struts-config.xml)
209      * @param request Das Servlet Anfrage Objekt
210      */
211     public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) 
212     {
213         // Perform validator framework validations
214         ActionErrors errors = new ActionErrors();
215 
216         if (rollenname == null || rollenname.length() <= 0)
217             errors.add("rollenname", new ActionError("error.field.edit.benutzerrolle.rollenname.empty"));
218         else if (rollenname.length() < 5)
219             errors.add("rollenname", new ActionError("error.field.edit.benutzerrolle.rollenname.minlength"));
220         else if (rollenname.length() > 25)
221             errors.add("rollenname", new ActionError("error.field.edit.benutzerrolle.rollenname.maxlength"));
222 
223         if (admin == null && projektleiter == null && gruppenmitglied == null)
224             errors.add("admin", new ActionError("error.field.edit.benutzerrolle.admin.norole"));
225 
226         if (log.isDebugEnabled()) 
227         {
228             Iterator iter = errors.get();
229 
230             log.debug(" Form had errors:");
231             while (iter.hasNext())
232             {
233                 log.debug(" " + ((ActionError) iter.next()).getKey());
234             }         
235         }
236 
237         return errors;
238     }
239 }