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.sql.Date;
22  import java.sql.Time;
23  import java.sql.Timestamp;
24  import java.util.Iterator;
25  
26  import javax.servlet.http.HttpServletRequest;
27  
28  import org.apache.commons.logging.Log;
29  import org.apache.commons.logging.LogFactory;
30  import org.apache.struts.action.ActionError;
31  import org.apache.struts.action.ActionErrors;
32  import org.apache.struts.action.ActionForm;
33  import org.apache.struts.action.ActionMapping;
34  
35  /***
36   * Formularklasse der MVC Architektur von Struts.
37   * In diesem Fall für einen einzelnen Berechnungsauftrag(Create/Delete/Edit eines Berechnungsauftrags)
38   *
39   * @author  <a href="mailto:thomas.vogt@tvc-software.com">Thomas Vogt</a>
40   * @version Version 1.0 09.07.2004
41   */
42  public final class BerechnungsauftragForm extends ActionForm
43  { 
44      /***
45       * The <code>Log</code> instance for this application.
46       */
47      private Log log = LogFactory.getLog("org.fhw.cabaweb.webfrontend.forms.simple");
48  
49      //--- Instanz Variablen --------------------------------------
50      /*** Art der Aktion die wir durchführen wollen (Create, Delete or Edit) - Default ist Create. */
51      private String action = "Create";
52      /*** Die Projektnummer */
53      private Integer projektnummer;
54      /*** Das Datum dieses Auftrags */
55      private Date datum;
56      /*** Die Uhrzeit dieses Auftrags */
57      private Time uhrzeit;
58      /*** Die Art der Berechnung dieses Auftrags */
59      private Integer artderberechnung;
60      /*** Der Abstand der Wiederholung dieses Auftrags */
61      private Short wiederholung;
62  
63      //--- Eigenschaften (Variablen) ------------------------------
64  
65      /*** 
66       * GET Methode 
67       *
68       * @return der Parameterwert 
69       */
70      public String getAction()
71      {
72          return this.action;
73      }
74  
75      /*** 
76       * SET Methode 
77       *
78       * @param action Der zu setzende Parameterwert 
79       */
80      public void setAction(String action)
81      {
82          this.action = action;
83      }
84  
85      /*** 
86       * GET Methode 
87       *
88       * @return der Parameterwert 
89       */
90      public Integer getArtDerBerechnung()
91      {
92          return this.artderberechnung;
93      }
94  
95      /*** 
96       * GET Methode 
97       *
98       * @return der Parameterwert 
99       */
100     public Integer getProjektnummer()
101     {
102         return this.projektnummer;
103     }
104 
105     /*** 
106      * GET Methode 
107      *
108      * @return der Parameterwert 
109      */
110     public Short getWiederholung()
111     {
112         return this.wiederholung;
113     }
114 
115     /*** 
116      * GET Methode 
117      *
118      * @return der Parameterwert 
119      */
120     public Date getDatum()
121     {
122         return this.datum;
123     }
124 
125     /*** 
126      * GET Methode 
127      *
128      * @return der Parameterwert 
129      */
130     public Time getUhrzeit()
131     {
132         return this.uhrzeit;
133     }
134 
135     /*** 
136      * SET Methode 
137      *
138      * @param artderberechnung Der zu setzende Parameterwert 
139      */
140     public void setArtDerBerechnung(Integer artderberechnung)
141     {
142         this.artderberechnung = artderberechnung;
143     }
144 
145     /*** 
146      * SET Methode 
147      *
148      * @param projektnummer Der zu setzende Parameterwert 
149      */
150     public void setProjektnummer(Integer projektnummer)
151     {
152         this.projektnummer = projektnummer;
153     }
154     
155     /*** 
156      * SET Methode 
157      *
158      * @param wiederholung Der zu setzende Parameterwert 
159      */
160     public void setWiederholung(Short wiederholung)
161     {
162         this.wiederholung = wiederholung;
163     }
164     
165     /*** 
166      * SET Methode 
167      *
168      * @param datum Der zu setzende Parameterwert 
169      */
170     public void setDatum(Date datum)
171     {
172         this.datum = datum;
173     }
174     
175     /*** 
176      * SET Methode 
177      *
178      * @param uhrzeit Der zu setzende Parameterwert 
179      */
180     public void setUhrzeit(Time uhrzeit)
181     {
182         this.uhrzeit = uhrzeit;
183     }
184 
185     //--- Öffentliche Methoden -----------------------------------
186 
187     /***
188      * Zurücksetzen aller Parameterwerte auf die Default Werte.
189      *
190      * @param mapping Das Mapping das benutzt wurde um diese Instanz zu selektieren
191      * @param request Die Servlet Anfrage die wir gerade bearbeiten
192      */
193     public void reset(ActionMapping mapping, HttpServletRequest request) 
194     {
195         this.action = "Create";
196         this.projektnummer = null;
197         this.datum = null;
198         this.uhrzeit = null;
199         this.artderberechnung = new Integer(0);
200         this.wiederholung = new Short((short) 0);
201     }
202 
203     /***
204      * Validieren der mit diesem Request übergebenen Paramter Werte. Wenn Fehler
205      * bei der Validierung auftreten wird <code>ActionErrors</code> Objekt, 
206      * das die Fehler enthält zurückgegeben.
207      * Wenn kein Fehler bei der Validierung auftritt wird <code>null</code> bzw.
208      * ein leeres <code>ActionErrors</code> Objekt zurückgegeben
209      *
210      * @param mapping Das Mapping das benutzt wurde um diese Instanz zu selektieren 
211      *                (siehe struts-config.xml)
212      * @param request Das Servlet Anfrage Objekt
213      */
214     public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) 
215     {
216         // Perform validator framework validations
217         ActionErrors errors = new ActionErrors();
218         Timestamp gesamtdatum = null;
219 
220         if (projektnummer == null)
221             errors.add("projektnummer", new ActionError("error.field.edit.berechnungsauftrag.projektnummer.empty"));
222 
223         if (datum == null || uhrzeit == null || datum.toString() == "" || uhrzeit.toString() == "")
224             errors.add("datum", new ActionError("error.field.edit.berechnungsauftrag.datum.empty"));
225         else if(datum != null && uhrzeit != null && datum.toString() != "" && uhrzeit.toString() != "")
226             gesamtdatum = new Timestamp(datum.getYear(), datum.getMonth(), datum.getDate(), uhrzeit.getHours(), uhrzeit.getMinutes(), uhrzeit.getSeconds(), 0);
227 
228         if (gesamtdatum != null && gesamtdatum.before(new Date(System.currentTimeMillis())))
229             errors.add("datum", new ActionError("error.field.edit.berechnungsauftrag.datum.futuredatesonly"));
230 
231         if (log.isDebugEnabled()) 
232         {
233             Iterator iter = errors.get();
234 
235             log.debug(" Form had errors:");
236             while (iter.hasNext())
237             {
238                 log.debug(" " + ((ActionError) iter.next()).getKey());
239             }         
240         }
241 
242         return errors;
243     }
244 }