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 Reporterzeugung (Create/Delete/Edit einer Reporterzeugung)
35   *
36   * @author  <a href="mailto:thomas.vogt@tvc-software.com">Thomas Vogt</a>
37   * @version Version 1.0 05.09.2004
38   */
39  public final class ReporterzeugungForm 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, Delete or Edit) - Default ist Create. */
48      private String action = "Create";
49      /*** Die Reportnummer */
50      private Integer reportnummer = null;
51      /*** Die Projektnummer */
52      private Integer projektnummer = null;
53      /*** Artificial PrimaryKey für die Identifikation der Seite des Reports */
54      private Integer seite;
55      /*** Artificial PrimaryKey Die Position innerhalb der Seite */
56      private Integer position;
57      /*** Die Sprachnummer */
58      private Integer sprachnummer = null;
59      /*** Der darzustellende Gruppierungsname */
60      private String gruppierungsname;
61      /*** Der darzustellende Untergruppierungsname */
62      private String untergruppierungsname;
63      /*** Der darzustellende Feldname */
64      private String feldname;
65      /*** Der darzustellende String */
66      private String text;
67      /*** Ausrichtung des Textes */
68      private String textalign;
69      /*** Stil des Textes */
70      private String textstil;
71      /*** Wiederholungsfeld ??? */
72      private Boolean wiederholung;
73      /*** Art der Wiederholung */
74      private String wiederholungstyp;
75      /*** Name des Feldes der Bedingung unter der das Feld angezeigt wird */
76      private String feldbedingung;
77      /*** Wert des Feldes der Bedingung unter der das Feld angezeigt wird */
78      private String feldbedingungwert;
79      /*** Typ des Feldes der Bedingung unter der das Feld angezeigt wird */
80      private String feldbedingungtyp;
81      /*** Quartal ab dem der Wert angezeigt wird */
82      private Integer feldbedingungstartquatal;
83      /*** Quartal bis zu dem der Wert angezeigt wird */
84      private Integer feldbedingungendquartal;
85      /*** Ausrichtung des Wertes */
86      private String wertalign;
87      /*** Stil des Wertes */
88      private String wertstil;
89      /*** Position des Wertes */
90      private String wertposition;
91      /*** Wert Anzeigen ?? */
92      private Boolean wertanzeigen;
93      /*** Wertkennzeichen Anzeigen ?? */
94      private Boolean wertkennzeichenanzeigen;
95      /*** Ende einer Section ?? */
96      private Boolean sektionende;
97      /*** Ende einer Page ?? */
98      private Boolean seitenende;
99  
100     //--- Eigenschaften (Variablen) ------------------------------
101 
102     /*** 
103      * GET Methode 
104      *
105      * @return der Parameterwert 
106      */
107     public String getAction()
108     {
109         return this.action;
110     }
111 
112     /*** 
113      * SET Methode 
114      *
115      * @param action Der zu setzende Parameterwert 
116      */
117     public void setAction(String action)
118     {
119         this.action = action;
120     }
121 
122     /*** 
123      * GET Methode 
124      *
125      * @return der Parameterwert 
126      */
127     public Integer getReportnummer()
128     {
129         return this.reportnummer;
130     }
131 
132     /*** 
133      * GET Methode 
134      *
135      * @return der Parameterwert 
136      */
137     public Integer getProjektnummer()
138     {
139         return this.projektnummer;
140     }
141 
142     /*** 
143      * SET Methode 
144      *
145      * @param reportnummer Der zu setzende Parameterwert 
146      */
147     public void setReportnummer(Integer reportnummer)
148     {
149         this.reportnummer = reportnummer;
150     }
151 
152     /*** 
153      * SET Methode 
154      *
155      * @param projektnummer Der zu setzende Parameterwert 
156      */
157     public void setProjektnummer(Integer projektnummer)
158     {
159         this.projektnummer = projektnummer;
160     }
161     
162 
163     /***
164      * gets seite
165      * @return seite 
166      */
167     public Integer getSeite() {
168         return seite;
169     }
170 
171     /***
172      * sets seite
173      * @param seite seite
174      */
175     public void setSeite(Integer seite) {
176         this.seite = seite;
177     }
178 
179     /***
180      * gets position
181      * @return position 
182      */
183     public Integer getPosition() {
184         return position;
185     }
186 
187     /***
188      * sets position
189      * @param position position 
190      */
191     public void setPosition(Integer position) {
192         this.position = position;
193     }
194 
195     /***
196      * Getter Methode für die zugeordnete Sprachnummer
197      *
198      * @return sprachnummer Die zugeordnete Sprachnummer
199      */
200     public Integer getSprachnummer()
201     {
202         return this.sprachnummer;
203     }
204 
205     /***
206      * Setter Methode für den Parameter Sprachnummer
207      *
208      * @param sprachnummer Sprachnummer mit dem neuen Parameterwert
209      */
210     public void setSprachnummer(Integer sprachnummer)
211     {
212         this.sprachnummer = sprachnummer;
213     }
214 
215     /***
216      * gets gruppierungsname
217      * @return gruppierungsname
218      */
219     public String getGruppierungsname() {
220         return gruppierungsname;
221     }
222 
223     /***
224      * sets gruppierungsname
225      * @param gruppierungsname gruppierungsname
226      */
227     public void setGruppierungsname(String gruppierungsname) {
228         this.gruppierungsname = gruppierungsname;
229     }
230 
231     /***
232      * gets untergruppierungsname
233      * @return untergruppierungsname 
234      */
235     public String getUntergruppierungsname() {
236         return untergruppierungsname;
237     }
238 
239     /***
240      * sets untergruppierungsname
241      * @param untergruppierungsname untergruppierungsname 
242      */
243     public void setUntergruppierungsname(String untergruppierungsname) {
244         this.untergruppierungsname = untergruppierungsname;
245     }
246 
247     /***
248      * gets feldname
249      * @return feldname 
250      */
251     public String getFeldname() {
252         return feldname;
253     }
254 
255     /***
256      * sets feldname
257      * @param feldname feldname 
258      */
259     public void setFeldname(String feldname) {
260         this.feldname = feldname;
261     }
262 
263     /***
264      * gets text
265      * @return text 
266      */
267     public String getText() {
268         return text;
269     }
270 
271     /***
272      * sets text
273      * @param text text 
274      */
275     public void setText(String text) {
276         this.text = text;
277     }
278     
279     /***
280      * gets feldbedingung
281      * @return feldbedingung
282      */
283     public String getFeldbedingung()
284     {
285         return feldbedingung;
286     }
287 
288     /***
289      * gets feldbedingungendquartal
290      * @return feldbedingungendquartal
291      */
292     public Integer getFeldbedingungendquartal()
293     {
294         return feldbedingungendquartal;
295     }
296 
297     /***
298      * gets feldbedingungstartquatal
299      * @return feldbedingungstartquatal
300      */
301     public Integer getFeldbedingungstartquatal()
302     {
303         return feldbedingungstartquatal;
304     }
305 
306     /***
307      * gets feldbedingungtyp
308      * @return feldbedingungtyp
309      */
310     public String getFeldbedingungtyp()
311     {
312         return feldbedingungtyp;
313     }
314 
315     /***
316      * gets feldbedingungwert
317      * @return feldbedingungwert
318      */
319     public String getFeldbedingungwert()
320     {
321         return feldbedingungwert;
322     }
323 
324     /***
325      * gets sektionende
326      * @return sektionende
327      */
328     public Boolean getSektionende()
329     {
330         return sektionende;
331     }
332 
333     /***
334      * gets seitenende
335      * @return seitenende
336      */
337     public Boolean getSeitenende()
338     {
339         return seitenende;
340     }
341     
342     /***
343      * gets textalign
344      * @return textalign
345      */
346     public String getTextalign()
347     {
348         return textalign;
349     }
350 
351     /***
352      * gets textstil
353      * @return textstil
354      */
355     public String getTextstil()
356     {
357         return textstil;
358     }
359 
360     /***
361      * gets wertalign
362      * @return wertalign
363      */
364     public String getWertalign()
365     {
366         return wertalign;
367     }
368 
369     /***
370      * gets wertanzeigen
371      * @return wertanzeigen
372      */
373     public Boolean getWertanzeigen()
374     {
375         return wertanzeigen;
376     }
377 
378     /***
379      * gets wertkennzeichenanzeigen
380      * @return wertkennzeichenanzeigen
381      */
382     public Boolean getWertkennzeichenanzeigen()
383     {
384         return wertkennzeichenanzeigen;
385     }
386 
387     /***
388      * gets wertposition
389      * @return wertposition
390      */
391     public String getWertposition()
392     {
393         return wertposition;
394     }
395 
396     /***
397      * gets wertstil
398      * @return wertstil
399      */
400     public String getWertstil()
401     {
402         return wertstil;
403     }
404 
405     /***
406      * gets wiederholung
407      * @return wiederholung
408      */
409     public Boolean getWiederholung()
410     {
411         return wiederholung;
412     }
413 
414     /***
415      * gets wiederholungstyp
416      * @return wiederholungstyp
417      */
418     public String getWiederholungstyp()
419     {
420         return wiederholungstyp;
421     }
422 
423     /***
424      * sets feldbedingung
425      * @param feldbedingung
426      */
427     public void setFeldbedingung(String feldbedingung)
428     {
429         this.feldbedingung = feldbedingung;
430     }
431 
432     /***
433      * sets feldbedingungendquartal
434      * @param feldbedingungendquartal
435      */
436     public void setFeldbedingungendquartal(Integer feldbedingungendquartal)
437     {
438         this.feldbedingungendquartal = feldbedingungendquartal;
439     }
440 
441     /***
442      * sets feldbedingungstartquatal
443      * @param feldbedingungstartquatal
444      */
445     public void setFeldbedingungstartquatal(Integer feldbedingungstartquatal)
446     {
447         this.feldbedingungstartquatal = feldbedingungstartquatal;
448     }
449 
450     /***
451      * sets feldbedingungtyp
452      * @param feldbedingungtyp
453      */
454     public void setFeldbedingungtyp(String feldbedingungtyp)
455     {
456         this.feldbedingungtyp = feldbedingungtyp;
457     }
458 
459     /***
460      * sets feldbedingungwert
461      * @param feldbedingungwert
462      */
463     public void setFeldbedingungwert(String feldbedingungwert)
464     {
465         this.feldbedingungwert = feldbedingungwert;
466     }
467 
468     /***
469      * sets sektionende
470      * @param sektionende
471      */
472     public void setSektionende(Boolean sektionende)
473     {
474         this.sektionende = sektionende;
475     }
476 
477     /***
478      * sets seitenende
479      * @param seitenende
480      */
481     public void setSeitenende(Boolean seitenende)
482     {
483         this.seitenende = seitenende;
484     }
485 
486     /***
487      * sets textalign
488      * @param textalign
489      */
490     public void setTextalign(String textalign)
491     {
492         this.textalign = textalign;
493     }
494 
495     /***
496      * sets textstil
497      * @param textstil
498      */
499     public void setTextstil(String textstil)
500     {
501         this.textstil = textstil;
502     }
503 
504     /***
505      * sets wertalign
506      * @param wertalign
507      */
508     public void setWertalign(String wertalign)
509     {
510         this.wertalign = wertalign;
511     }
512 
513     /***
514      * sets wertanzeigen
515      * @param wertanzeigen
516      */
517     public void setWertanzeigen(Boolean wertanzeigen)
518     {
519         this.wertanzeigen = wertanzeigen;
520     }
521 
522     /***
523      * sets wertkennzeichenanzeigen
524      * @param wertkennzeichenanzeigen
525      */
526     public void setWertkennzeichenanzeigen(Boolean wertkennzeichenanzeigen)
527     {
528         this.wertkennzeichenanzeigen = wertkennzeichenanzeigen;
529     }
530 
531     /***
532      * sets wertposition
533      * @param wertposition
534      */
535     public void setWertposition(String wertposition)
536     {
537         this.wertposition = wertposition;
538     }
539 
540     /***
541      * sets wertstil
542      * @param wertstil
543      */
544     public void setWertstil(String wertstil)
545     {
546         this.wertstil = wertstil;
547     }
548 
549     /***
550      * sets wiederholung
551      * @param wiederholung
552      */
553     public void setWiederholung(Boolean wiederholung)
554     {
555         this.wiederholung = wiederholung;
556     }
557 
558     /***
559      * sets wiederholungstyp
560      * @param wiederholungstyp
561      */
562     public void setWiederholungstyp(String wiederholungstyp)
563     {
564         this.wiederholungstyp = wiederholungstyp;
565     }
566 
567     //--- Öffentliche Methoden -----------------------------------
568 
569     /***
570      * Zurücksetzen aller Parameterwerte auf die Default Werte.
571      *
572      * @param mapping Das Mapping das benutzt wurde um diese Instanz zu selektieren
573      * @param request Die Servlet Anfrage die wir gerade bearbeiten
574      */
575     public void reset(ActionMapping mapping, HttpServletRequest request) 
576     {
577         this.setAction("Create");
578         this.setReportnummer(null);
579         this.setProjektnummer(null);
580         this.setSeite(null);
581         this.setPosition(null);
582         this.setSprachnummer(null);
583         this.setGruppierungsname(null);
584         this.setUntergruppierungsname(null);
585         this.setFeldname(null);
586         this.setText(null);
587         this.setTextalign(null);
588         this.setTextstil(null);
589         this.setWiederholung(null);
590         this.setWiederholungstyp(null);
591         this.setFeldbedingung(null);
592         this.setFeldbedingungwert(null);
593         this.setFeldbedingungtyp(null);
594         this.setFeldbedingungstartquatal(null);
595         this.setFeldbedingungendquartal(null);
596         this.setWertalign(null);
597         this.setWertstil(null);
598         this.setWertposition(null);
599         this.setWertanzeigen(null);
600         this.setWertkennzeichenanzeigen(null);
601         this.setSektionende(null);
602         this.setSeitenende(null);
603     }
604 
605     /***
606      * Validieren der mit diesem Request übergebenen Paramter Werte. Wenn Fehler
607      * bei der Validierung auftreten wird <code>ActionErrors</code> Objekt, 
608      * das die Fehler enthält zurückgegeben.
609      * Wenn kein Fehler bei der Validierung auftritt wird <code>null</code> bzw.
610      * ein leeres <code>ActionErrors</code> Objekt zurückgegeben
611      *
612      * @param mapping Das Mapping das benutzt wurde um diese Instanz zu selektieren 
613      *                (siehe struts-config.xml)
614      * @param request Das Servlet Anfrage Objekt
615      */
616     public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) 
617     {
618         // Perform validator framework validations
619         ActionErrors errors = new ActionErrors();
620 
621         if (projektnummer == null)
622             errors.add("projektnummer", new ActionError("error.field.edit.reporterzeugung.projektnummer.empty"));
623 
624         if (reportnummer == null)
625             errors.add("reportnummer", new ActionError("error.field.edit.reporterzeugung.reportnummer.empty"));
626 
627         if (sprachnummer == null)
628             errors.add("sprachnummer", new ActionError("error.field.edit.reporterzeugung.sprachnummer.empty"));
629 
630         if (seite == null)
631             errors.add("seite", new ActionError("error.field.edit.reporterzeugung.seite.empty"));
632 
633         if (position == null)
634             errors.add("position", new ActionError("error.field.edit.reporterzeugung.position.empty"));
635 
636         if( !action.equals("Delete") )
637         {
638             int count = 0;        
639             if(gruppierungsname != null && gruppierungsname.trim().length() >= 1)
640                 count++;
641             if(untergruppierungsname != null && untergruppierungsname.trim().length() >= 1)
642                 count++;
643             if(feldname != null && feldname.trim().length() >= 1)
644                 count++;
645             if(text != null && text.trim().length() >= 1)
646                 count++;
647 
648             if(count <= 0)
649             {
650                 errors.add("gruppierungsname", new ActionError("error.field.edit.reporterzeugung.count.min"));
651             }
652             else if(count > 1)
653             {
654                 errors.add("gruppierungsname", new ActionError("error.field.edit.reporterzeugung.count.max"));
655             }
656             else
657             {
658                 if (gruppierungsname != null && gruppierungsname.trim().length() > 0)
659                 { 
660                     if (gruppierungsname.length() < 1)
661                         errors.add("gruppierungsname", new ActionError("error.field.edit.reporterzeugung.gruppierungsname.minlength"));
662                     else if (gruppierungsname.trim().length() > 255)
663                         errors.add("gruppierungsname", new ActionError("error.field.edit.reporterzeugung.gruppierungsname.maxlength"));
664 
665                     if (textalign != null && textalign.trim().length() > 0)
666                         errors.add("textalign", new ActionError("error.field.edit.reporterzeugung.textalign.noentry"));
667 
668                     if (textstil != null && textstil.trim().length() > 0)
669                         errors.add("textstil", new ActionError("error.field.edit.reporterzeugung.textstil.noentry"));
670 
671                     if (wertalign != null && wertalign.trim().length() > 0)
672                         errors.add("wertalign", new ActionError("error.field.edit.reporterzeugung.wertalign.noentry"));
673 
674                     if (wertstil != null && wertstil.trim().length() > 0)
675                         errors.add("wertstil", new ActionError("error.field.edit.reporterzeugung.wertstil.noentry"));
676 
677                     if (wertposition != null && wertposition.trim().length() > 0)
678                         errors.add("wertposition", new ActionError("error.field.edit.reporterzeugung.wertposition.noentry"));
679                 }
680                 else if (untergruppierungsname != null && untergruppierungsname.trim().length() > 0)
681                 { 
682                     if (untergruppierungsname.length() < 1)
683                         errors.add("untergruppierungsname", new ActionError("error.field.edit.reporterzeugung.untergruppierungsname.minlength"));
684                     else if (untergruppierungsname.trim().length() > 255)
685                         errors.add("untergruppierungsname", new ActionError("error.field.edit.reporterzeugung.untergruppierungsname.maxlength"));
686 
687                     if (textalign != null && textalign.trim().length() > 0)
688                         errors.add("textalign", new ActionError("error.field.edit.reporterzeugung.textalign.noentry"));
689 
690                     if (textstil != null && textstil.trim().length() > 0)
691                         errors.add("textstil", new ActionError("error.field.edit.reporterzeugung.textstil.noentry"));
692 
693                     if (wertalign != null && wertalign.trim().length() > 0)
694                         errors.add("wertalign", new ActionError("error.field.edit.reporterzeugung.wertalign.noentry"));
695 
696                     if (wertstil != null && wertstil.trim().length() > 0)
697                         errors.add("wertstil", new ActionError("error.field.edit.reporterzeugung.wertstil.noentry"));
698 
699                     if (wertposition != null && wertposition.trim().length() > 0)
700                         errors.add("wertposition", new ActionError("error.field.edit.reporterzeugung.wertposition.noentry"));
701                 }
702                 else if (feldname != null && feldname.trim().length() > 0)
703                 { 
704                     if (feldname.length() < 1)
705                         errors.add("feldname", new ActionError("error.field.edit.reporterzeugung.feldname.minlength"));
706                     else if (feldname.length() > 255)
707                         errors.add("feldname", new ActionError("error.field.edit.reporterzeugung.feldname.maxlength"));
708 
709                     if (textalign == null || textalign.trim().length() <= 0)
710                         errors.add("textalign", new ActionError("error.field.edit.reporterzeugung.textalign.empty"));
711                     else if (textalign.length() < 1)
712                         errors.add("textalign", new ActionError("error.field.edit.reporterzeugung.textalign.minlength"));
713                     else if (textalign.length() > 255)
714                         errors.add("textalign", new ActionError("error.field.edit.reporterzeugung.textalign.maxlength"));
715 
716                     if (textstil == null || textstil.trim().length() <= 0)
717                         errors.add("textstil", new ActionError("error.field.edit.reporterzeugung.textstil.empty"));
718                     else if (textstil.length() < 1)
719                         errors.add("textstil", new ActionError("error.field.edit.reporterzeugung.textstil.minlength"));
720                     else if (textstil.length() > 255)
721                         errors.add("textstil", new ActionError("error.field.edit.reporterzeugung.textstil.maxlength"));
722 
723                     if (wertalign == null || wertalign.trim().length() <= 0)
724                         errors.add("wertalign", new ActionError("error.field.edit.reporterzeugung.wertalign.empty"));
725                     else if (wertalign.length() < 1)
726                         errors.add("wertalign", new ActionError("error.field.edit.reporterzeugung.wertalign.minlength"));
727                     else if (wertalign.length() > 255)
728                         errors.add("wertalign", new ActionError("error.field.edit.reporterzeugung.wertalign.maxlength"));
729 
730                     if (wertstil == null || wertstil.trim().length() <= 0)
731                         errors.add("wertstil", new ActionError("error.field.edit.reporterzeugung.wertstil.empty"));
732                     else if (wertstil.length() < 1)
733                         errors.add("wertstil", new ActionError("error.field.edit.reporterzeugung.wertstil.minlength"));
734                     else if (wertstil.length() > 255)
735                         errors.add("wertstil", new ActionError("error.field.edit.reporterzeugung.wertstil.maxlength"));
736 
737                     if (wertposition == null || wertposition.trim().length() <= 0)
738                         errors.add("wertposition", new ActionError("error.field.edit.reporterzeugung.wertposition.empty"));
739                     else if (wertposition.length() < 1)
740                         errors.add("wertposition", new ActionError("error.field.edit.reporterzeugung.wertposition.minlength"));
741                     else if (wertposition.length() > 255)
742                         errors.add("wertposition", new ActionError("error.field.edit.reporterzeugung.wertposition.maxlength"));
743                 }
744                 else if (text != null && text.trim().length() > 0)
745                 { 
746                     if (text.length() < 1)
747                         errors.add("text", new ActionError("error.field.edit.reporterzeugung.text.minlength"));
748                     else if (text.length() > 255)
749                         errors.add("text", new ActionError("error.field.edit.reporterzeugung.text.maxlength"));
750 
751                     if (textalign == null || textalign.trim().length() <= 0)
752                         errors.add("textalign", new ActionError("error.field.edit.reporterzeugung.textalign.empty"));
753                     else if (textalign.length() < 1)
754                         errors.add("textalign", new ActionError("error.field.edit.reporterzeugung.textalign.minlength"));
755                     else if (textalign.length() > 255)
756                         errors.add("textalign", new ActionError("error.field.edit.reporterzeugung.textalign.maxlength"));
757 
758                     if (textstil == null || textstil.trim().length() <= 0)
759                         errors.add("textstil", new ActionError("error.field.edit.reporterzeugung.textstil.empty"));
760                     else if (textstil.length() < 1)
761                         errors.add("textstil", new ActionError("error.field.edit.reporterzeugung.textstil.minlength"));
762                     else if (textstil.length() > 255)
763                         errors.add("textstil", new ActionError("error.field.edit.reporterzeugung.textstil.maxlength"));
764 
765                     if (wertalign == null || wertalign.trim().length() <= 0)
766                         errors.add("wertalign", new ActionError("error.field.edit.reporterzeugung.wertalign.empty"));
767                     else if (wertalign.length() < 1)
768                         errors.add("wertalign", new ActionError("error.field.edit.reporterzeugung.wertalign.minlength"));
769                     else if (wertalign.length() > 255)
770                         errors.add("wertalign", new ActionError("error.field.edit.reporterzeugung.wertalign.maxlength"));
771 
772                     if (wertstil == null || wertstil.trim().length() <= 0)
773                         errors.add("wertstil", new ActionError("error.field.edit.reporterzeugung.wertstil.empty"));
774                     else if (wertstil.length() < 1)
775                         errors.add("wertstil", new ActionError("error.field.edit.reporterzeugung.wertstil.minlength"));
776                     else if (wertstil.length() > 255)
777                         errors.add("wertstil", new ActionError("error.field.edit.reporterzeugung.wertstil.maxlength"));
778 
779                     if (wertposition == null || wertposition.length() <= 0)
780                         errors.add("wertposition", new ActionError("error.field.edit.reporterzeugung.wertposition.empty"));
781                     else if (wertposition.length() < 1)
782                         errors.add("wertposition", new ActionError("error.field.edit.reporterzeugung.wertposition.minlength"));
783                     else if (wertposition.length() > 255)
784                         errors.add("wertposition", new ActionError("error.field.edit.reporterzeugung.wertposition.maxlength"));
785                 }
786                 else
787                     errors.add("gruppierungsname", new ActionError("error.field.edit.reporterzeugung.count.min"));
788             }
789 
790             if(wiederholung != null && wiederholung.booleanValue() == true)
791             {
792                 if (wiederholungstyp == null || wiederholungstyp.trim().length() <= 0)
793                     errors.add("wiederholungstyp", new ActionError("error.field.edit.reporterzeugung.wiederholungstyp.empty"));
794                 else if (wiederholungstyp.length() < 1)
795                     errors.add("wiederholungstyp", new ActionError("error.field.edit.reporterzeugung.wiederholungstyp.minlength"));
796                 else if (wiederholungstyp.length() > 255)
797                     errors.add("wiederholungstyp", new ActionError("error.field.edit.reporterzeugung.wiederholungstyp.maxlength"));
798 
799                 if(feldbedingung != null)
800                 {
801                     if (feldbedingung.length() < 1)
802                         errors.add("feldbedingung", new ActionError("error.field.edit.reporterzeugung.feldbedingung.minlength"));
803                     else if (feldbedingung.length() > 255)
804                         errors.add("feldbedingung", new ActionError("error.field.edit.reporterzeugung.feldbedingung.maxlength"));
805 
806                     if (feldbedingungwert == null || feldbedingungwert.trim().length() <= 0)
807                         errors.add("feldbedingungwert", new ActionError("error.field.edit.reporterzeugung.feldbedingungwert.empty"));
808                     else if (feldbedingungwert.length() < 1)
809                         errors.add("feldbedingungwert", new ActionError("error.field.edit.reporterzeugung.feldbedingungwert.minlength"));
810                     else if (feldbedingungwert.length() > 255)
811                         errors.add("feldbedingungwert", new ActionError("error.field.edit.reporterzeugung.feldbedingungwert.maxlength"));
812 
813                     if (feldbedingungtyp == null || feldbedingungtyp.trim().length() <= 0)
814                         errors.add("feldbedingungtyp", new ActionError("error.field.edit.reporterzeugung.feldbedingungtyp.empty"));
815                     else if (feldbedingungtyp.length() < 1)
816                         errors.add("feldbedingungtyp", new ActionError("error.field.edit.reporterzeugung.feldbedingungtyp.minlength"));
817                     else if (feldbedingungtyp.length() > 255)
818                         errors.add("feldbedingungtyp", new ActionError("error.field.edit.reporterzeugung.feldbedingungtyp.maxlength"));
819                         
820                     if(feldbedingung != null && feldbedingungtyp.equals("Quartal"))
821                     {
822                         if (feldbedingungstartquatal == null)
823                             errors.add("feldbedingungstartquatal", new ActionError("error.field.edit.reporterzeugung.feldbedingungstartquatal.empty"));
824                         else if (feldbedingungstartquatal.intValue() < 0)
825                             errors.add("feldbedingungstartquatal", new ActionError("error.field.edit.reporterzeugung.feldbedingungstartquatal.min"));
826                         else if (feldbedingungstartquatal.intValue() > 19)
827                             errors.add("feldbedingungstartquatal", new ActionError("error.field.edit.reporterzeugung.feldbedingungstartquatal.max"));
828 
829                         if (feldbedingungendquartal == null)
830                             errors.add("feldbedingungendquartal", new ActionError("error.field.edit.reporterzeugung.feldbedingungendquartal.empty"));
831                         else if (feldbedingungendquartal.intValue() < 1)
832                             errors.add("feldbedingungendquartal", new ActionError("error.field.edit.reporterzeugung.feldbedingungendquartal.min"));
833                         else if (feldbedingungendquartal.intValue() > 20)
834                             errors.add("feldbedingungendquartal", new ActionError("error.field.edit.reporterzeugung.feldbedingungendquartal.max"));
835                     }
836                 }
837                 else if(feldbedingung == null)
838                 {
839                     if (feldbedingungwert != null && feldbedingungwert.trim().length() > 0)
840                         errors.add("feldbedingungwert", new ActionError("error.field.edit.reporterzeugung.feldbedingungwert.noentry"));
841 
842                     if (feldbedingungtyp != null && feldbedingungtyp.trim().length() > 0)
843                         errors.add("feldbedingungtyp", new ActionError("error.field.edit.reporterzeugung.feldbedingungtyp.noentry"));
844                 }
845             }
846             else if(wiederholung == null || wiederholung.booleanValue() == false)
847             {
848                 if (wiederholungstyp != null && wiederholungstyp.trim().length() > 0)
849                     errors.add("wiederholungstyp", new ActionError("error.field.edit.reporterzeugung.wiederholungstyp.noentry"));
850 
851                 if (feldbedingung != null && feldbedingung.trim().length() > 0)
852                     errors.add("feldbedingung", new ActionError("error.field.edit.reporterzeugung.feldbedingung.noentry"));
853 
854                 if (feldbedingungwert != null && feldbedingungwert.trim().length() > 0)
855                     errors.add("feldbedingungwert", new ActionError("error.field.edit.reporterzeugung.feldbedingungwert.noentry"));
856 
857                 if (feldbedingungtyp != null && feldbedingungtyp.trim().length() > 0)
858                     errors.add("feldbedingungtyp", new ActionError("error.field.edit.reporterzeugung.feldbedingungtyp.noentry"));
859             }
860 
861             if (wertanzeigen == null)
862                 errors.add("wertanzeigen", new ActionError("error.field.edit.reporterzeugung.wertanzeigen.empty"));
863 
864             if (wertkennzeichenanzeigen == null)
865                 errors.add("wertkennzeichenanzeigen", new ActionError("error.field.edit.reporterzeugung.wertkennzeichenanzeigen.empty"));
866 
867             if (sektionende == null)
868                 errors.add("sektionende", new ActionError("error.field.edit.reporterzeugung.sektionende.empty"));
869 
870             if (seitenende == null)
871                 errors.add("seitenende", new ActionError("error.field.edit.reporterzeugung.seitenende.empty"));
872 
873             if (log.isDebugEnabled()) 
874             {
875                 Iterator iter = errors.get();
876 
877                 log.debug(" Form had errors:");
878                 while (iter.hasNext())
879                 {
880                     log.debug(" " + ((ActionError) iter.next()).getKey());
881                 }         
882             }
883         }
884         
885         return errors;
886     }
887 }