KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > dbforms > validation > DbFormsValidator


1 /*
2  * $Header: /cvsroot/jdbforms/dbforms/src/org/dbforms/validation/DbFormsValidator.java,v 1.24 2004/08/18 12:26:11 hkollmann Exp $
3  * $Revision: 1.24 $
4  * $Date: 2004/08/18 12:26:11 $
5  *
6  * DbForms - a Rapid Application Development Framework
7  * Copyright (C) 2001 Joachim Peer <joepeer@excite.com>
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Lesser General Public
11  * License as published by the Free Software Foundation; either
12  * version 2.1 of the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library; if not, write to the Free Software
21  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22  */

23
24 package org.dbforms.validation;
25
26 import org.apache.commons.logging.Log;
27 import org.apache.commons.logging.LogFactory;
28 import org.apache.commons.validator.Field;
29 import org.apache.commons.validator.GenericValidator;
30 import org.apache.commons.validator.ValidatorAction;
31
32 import org.dbforms.config.DbFormsErrors;
33 import org.dbforms.config.FieldValue;
34 import org.dbforms.config.FieldValues;
35 import org.dbforms.config.ValidationException;
36
37 import org.dbforms.util.Util;
38
39 import java.io.Serializable JavaDoc;
40
41 import java.util.Locale JavaDoc;
42 import java.util.Vector JavaDoc;
43
44
45
46 /*********************************************************************************************
47  * <p>This class performs validations.
48  * The parameters of methods must match the "methodParams" in "validator-rules.xml" file. </p>
49  *
50  * @author Eric Beaumier
51 *********************************************************************************************/

52 public class DbFormsValidator implements Serializable JavaDoc {
53    private static Log logCat = LogFactory.getLog(DbFormsValidator.class
54                                                           .getName());
55    private static final String JavaDoc REQUIRED = "required";
56    private static final String JavaDoc MASK = "mask";
57    private static final String JavaDoc RANGE = "range";
58    private static final String JavaDoc MINLENGTH = "minlength";
59    private static final String JavaDoc MAXLENGTH = "maxlength";
60    private static final String JavaDoc BYTE = "byte";
61    private static final String JavaDoc SHORT = "short";
62    private static final String JavaDoc LONG = "long";
63    private static final String JavaDoc INTEGER = "integer";
64    private static final String JavaDoc FLOAT = "float";
65    private static final String JavaDoc DOUBLE = "double";
66    private static final String JavaDoc DATE = "date";
67    private static final String JavaDoc CREDITCARD = "creditcard";
68    private static final String JavaDoc EMAIL = "email";
69
70    /********************************************************************************************
71     * <p>Checks if the field can safely be converted to a byte primitive.</p>
72     *
73     * @param bean The bean validation is being performed on.
74     * @param va The <code>ValidatorAction</code> used to retrieve validator information.
75     * @param field The <code>Field</code> object associated with the current field being validated.
76     * @param errors The <code>Vector</code> object used by DBForms to add errors to if any validation errors occur.
77     * @param locale The <code>Locale</code> object of the Request.
78          * @param dbFormsErrors DbForms Error class to retrieve error message in DbForm-Errors.xml format.
79     ********************************************************************************************/

80    public static boolean validateByte(Object JavaDoc bean,
81                                       ValidatorAction va,
82                                       Field field,
83                                       Vector JavaDoc errors,
84                                       Locale JavaDoc locale,
85                                       DbFormsErrors dbFormsErrors) {
86       String JavaDoc value = getValue(bean, field);
87
88       if (!Util.isNull(value)) {
89          if (!GenericValidator.isByte(value)) {
90             errors.add(new ValidationException(dbFormsErrorMessage(BYTE, va,
91                                                                    field,
92                                                                    locale,
93                                                                    dbFormsErrors)));
94
95             return false;
96          } else {
97             return true;
98          }
99       }
100
101       return true;
102    }
103
104
105    /********************************************************************************************
106     * <p>Checks if the field is a valid credit card number.</p>
107     * <p>Translated to Java by Ted Husted (<a HREF="mailto:husted@apache.org">husted@apache.org</a>).<br>
108     * &nbsp;&nbsp;&nbsp; Reference Sean M. Burke's script at http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl</p>
109     *
110     * @param bean The bean validation is being performed on.
111     * @param va The <code>ValidatorAction</code> used to retrieve validator information.
112     * @param field The <code>Field</code> object associated with the current field being validated.
113     * @param errors The <code>Vector</code> object used by DBForms to add errors to if any validation errors occur.
114     * @param locale The <code>Locale</code> object of the Request.
115          * @param dbFormsErrors DbForms Error class to retrieve error message in DbForm-Errors.xml format.
116     ********************************************************************************************/

117    public static boolean validateCreditCard(Object JavaDoc bean,
118                                             ValidatorAction va,
119                                             Field field,
120                                             Vector JavaDoc errors,
121                                             Locale JavaDoc locale,
122                                             DbFormsErrors dbFormsErrors) {
123       String JavaDoc value = getValue(bean, field);
124
125       if (!Util.isNull(value)) {
126          if (!GenericValidator.isCreditCard(value)) {
127             errors.add(new ValidationException(dbFormsErrorMessage(CREDITCARD,
128                                                                    va, field,
129                                                                    locale,
130                                                                    dbFormsErrors)));
131
132             return false;
133          }
134       }
135
136       return true;
137    }
138
139
140    /********************************************************************************************
141     * <p>Checks if the field is a valid date. If the field has a datePattern variable,
142     * that will be used to format <code>java.text.SimpleDateFormat</code>. If the field
143     * has a datePatternStrict variable, that will be used to format
144     * <code>java.text.SimpleDateFormat</code> and the length will be checked so '2/12/1999'
145     * will not pass validation with the format 'MM/dd/yyyy' because the month isn't two digits.
146     * If no datePattern variable is specified, then the field gets the DateFormat.SHORT
147     * format for the locale. The setLenient method is set to <code>false</code> for all
148     * variations.</p>
149     *
150     * @param bean The bean validation is being performed on.
151     * @param va The <code>ValidatorAction</code> used to retrieve validator information.
152     * @param field The <code>Field</code> object associated with the current field being validated.
153     * @param errors The <code>Vector</code> object used by DBForms to add errors to if any validation errors occur.
154     * @param locale The <code>Locale</code> object of the Request.
155          * @param dbFormsErrors DbForms Error class to retrieve error message in DbForm-Errors.xml format.
156     ********************************************************************************************/

157    public static boolean validateDate(Object JavaDoc bean,
158                                       ValidatorAction va,
159                                       Field field,
160                                       Vector JavaDoc errors,
161                                       Locale JavaDoc locale,
162                                       DbFormsErrors dbFormsErrors) {
163       boolean bValid = true;
164       String JavaDoc value = getValue(bean, field);
165
166       if (!Util.isNull(value)) {
167          value = ((FieldValues) bean).get(field.getProperty())
168                   .getFieldValue();
169
170          String JavaDoc datePattern = field.getVarValue("datePattern");
171          String JavaDoc datePatternStrict = field.getVarValue("datePatternStrict");
172
173          if (!GenericValidator.isBlankOrNull(value)) {
174             try {
175                if ((datePattern != null) && (datePattern.length() > 0)) {
176                   bValid = GenericValidator.isDate(value, datePattern, false);
177                } else if (!Util.isNull(datePatternStrict)) {
178                   bValid = GenericValidator.isDate(value, datePatternStrict,
179                                                    true);
180                } else {
181                   bValid = getValue(bean, field) != null;
182                }
183             } catch (Exception JavaDoc e) {
184                errors.add(new ValidationException(dbFormsErrorMessage(DATE, va,
185                                                                       field,
186                                                                       locale,
187                                                                       dbFormsErrors)));
188                bValid = false;
189             }
190          }
191       }
192
193       if (!bValid) {
194          errors.add(new ValidationException(dbFormsErrorMessage(DATE, va,
195                                                                 field, locale,
196                                                                 dbFormsErrors)));
197       }
198
199       return bValid;
200    }
201
202
203    /********************************************************************************************
204     * <p>Checks if the field can safely be converted to a double primitive.</p>
205     *
206     * @param bean The bean validation is being performed on.
207     * @param va The <code>ValidatorAction</code> used to retrieve validator information.
208     * @param field The <code>Field</code> object associated with the current field being validated.
209     * @param errors The <code>Vector</code> object used by DBForms to add errors to if any validation errors occur.
210     * @param locale The <code>Locale</code> object of the Request.
211          * @param dbFormsErrors DbForms Error class to retrieve error message in DbForm-Errors.xml format.
212     ********************************************************************************************/

213    public static boolean validateDouble(Object JavaDoc bean,
214                                         ValidatorAction va,
215                                         Field field,
216                                         Vector JavaDoc errors,
217                                         Locale JavaDoc locale,
218                                         DbFormsErrors dbFormsErrors) {
219       String JavaDoc value = getValue(bean, field);
220
221       if (!Util.isNull(value)) {
222          if (!GenericValidator.isDouble(value)) {
223             errors.add(new ValidationException(dbFormsErrorMessage(DOUBLE, va,
224                                                                    field,
225                                                                    locale,
226                                                                    dbFormsErrors)));
227
228             return false;
229          } else {
230             return true;
231          }
232       }
233
234       return true;
235    }
236
237
238    /********************************************************************************************
239     * <p>Checks if a field has a valid e-mail address.</p>
240     * <p>Based on a script by Sandeep V. Tamhankar (stamhankar@hotmail.com),
241     * http://javascript.internet.com</p>
242     *
243     * @param bean The bean validation is being performed on.
244     * @param va The <code>ValidatorAction</code> used to retrieve validator information.
245     * @param field The <code>Field</code> object associated with the current field being validated.
246     * @param errors The <code>Vector</code> object used by DBForms to add errors to if any validation errors occur.
247     * @param locale The <code>Locale</code> object of the Request.
248          * @param dbFormsErrors DbForms Error class to retrieve error message in DbForm-Errors.xml format.
249     ********************************************************************************************/

250    public static boolean validateEmail(Object JavaDoc bean,
251                                        ValidatorAction va,
252                                        Field field,
253                                        Vector JavaDoc errors,
254                                        Locale JavaDoc locale,
255                                        DbFormsErrors dbFormsErrors) {
256       String JavaDoc value = getValue(bean, field);
257
258       if (!Util.isNull(value)) {
259          if (!GenericValidator.isEmail(value)) {
260             errors.add(new ValidationException(dbFormsErrorMessage(EMAIL, va,
261                                                                    field,
262                                                                    locale,
263                                                                    dbFormsErrors)));
264
265             return false;
266          }
267       }
268
269       return true;
270    }
271
272
273    /********************************************************************************************
274     * <p>Checks if the field can safely be converted to a float primitive.</p>
275     *
276     * @param bean The bean validation is being performed on.
277     * @param va The <code>ValidatorAction</code> used to retrieve validator information.
278     * @param field The <code>Field</code> object associated with the current field being validated.
279     * @param errors The <code>Vector</code> object used by DBForms to add errors to if any validation errors occur.
280     * @param locale The <code>Locale</code> object of the Request.
281          * @param dbFormsErrors DbForms Error class to retrieve error message in DbForm-Errors.xml format.
282     ********************************************************************************************/

283    public static boolean validateFloat(Object JavaDoc bean,
284                                        ValidatorAction va,
285                                        Field field,
286                                        Vector JavaDoc errors,
287                                        Locale JavaDoc locale,
288                                        DbFormsErrors dbFormsErrors) {
289       String JavaDoc value = getValue(bean, field);
290
291       if (!Util.isNull(value)) {
292          if (!GenericValidator.isFloat(value)) {
293             errors.add(new ValidationException(dbFormsErrorMessage(FLOAT, va,
294                                                                    field,
295                                                                    locale,
296                                                                    dbFormsErrors)));
297
298             return false;
299          } else {
300             return true;
301          }
302       }
303
304       return true;
305    }
306
307
308    /********************************************************************************************
309     * <p>Checks if the field can safely be converted to an int primitive.</p>
310     *
311     * @param bean The bean validation is being performed on.
312     * @param va The <code>ValidatorAction</code> used to retrieve validator information.
313     * @param field The <code>Field</code> object associated with the current field being validated.
314     * @param errors The <code>Vector</code> object used by DBForms to add errors to if any validation errors occur.
315     * @param locale The <code>Locale</code> object of the Request.
316          * @param dbFormsErrors DbForms Error class to retrieve error message in DbForm-Errors.xml format.
317     ********************************************************************************************/

318    public static boolean validateInteger(Object JavaDoc bean,
319                                          ValidatorAction va,
320                                          Field field,
321                                          Vector JavaDoc errors,
322                                          Locale JavaDoc locale,
323                                          DbFormsErrors dbFormsErrors) {
324       String JavaDoc value = getValue(bean, field);
325
326       if (!Util.isNull(value)) {
327          if (!GenericValidator.isInt(value)) {
328             errors.add(new ValidationException(dbFormsErrorMessage(INTEGER, va,
329                                                                    field,
330                                                                    locale,
331                                                                    dbFormsErrors)));
332
333             return false;
334          } else {
335             return true;
336          }
337       }
338
339       return true;
340    }
341
342
343    /********************************************************************************************
344     * <p>Checks if the field can safely be converted to a long primitive.</p>
345     *
346     * @param bean The bean validation is being performed on.
347     * @param va The <code>ValidatorAction</code> used to retrieve validator information.
348     * @param field The <code>Field</code> object associated with the current field being validated.
349     * @param errors The <code>Vector</code> object used by DBForms to add errors to if any validation errors occur.
350     * @param locale The <code>Locale</code> object of the Request.
351          * @param dbFormsErrors DbForms Error class to retrieve error message in DbForm-Errors.xml format.
352     ********************************************************************************************/

353    public static boolean validateLong(Object JavaDoc bean,
354                                       ValidatorAction va,
355                                       Field field,
356                                       Vector JavaDoc errors,
357                                       Locale JavaDoc locale,
358                                       DbFormsErrors dbFormsErrors) {
359       String JavaDoc value = getValue(bean, field);
360
361       if (!Util.isNull(value)) {
362          if (!GenericValidator.isLong(value)) {
363             errors.add(new ValidationException(dbFormsErrorMessage(LONG, va,
364                                                                    field,
365                                                                    locale,
366                                                                    dbFormsErrors)));
367
368             return false;
369          } else {
370             return true;
371          }
372       }
373
374       return true;
375    }
376
377
378    /*********************************************************************************************
379     * <p>Checks if the field matches the regular expression in the field's mask attribute.</p>
380     *
381     * @param bean The bean validation is being performed on.
382     * @param va The <code>ValidatorAction</code> used to retrieve validator information.
383     * @param field The <code>Field</code> object associated with the current field being validated.
384     * @param errors The <code>Vector</code> object used by DBForms to add errors to if any validation errors occur.
385     * @param locale The <code>Locale</code> object of the Request.
386          * @param dbFormsErrors DbForms Error class to retrieve error message in DbForm-Errors.xml format.
387     ********************************************************************************************/

388    public static boolean validateMask(Object JavaDoc bean,
389                                       ValidatorAction va,
390                                       Field field,
391                                       Vector JavaDoc errors,
392                                       Locale JavaDoc locale,
393                                       DbFormsErrors dbFormsErrors) {
394       String JavaDoc value = getValue(bean, field);
395
396       if (!Util.isNull(value)) {
397          String JavaDoc mask = field.getVarValue("mask");
398
399          if (!GenericValidator.isBlankOrNull(value)
400                    && !GenericValidator.matchRegexp(value, mask)) {
401             errors.add(new ValidationException(dbFormsErrorMessage(MASK, va,
402                                                                    field,
403                                                                    locale,
404                                                                    dbFormsErrors)));
405
406             return false;
407          } else {
408             return true;
409          }
410       }
411
412       return true;
413    }
414
415
416    /********************************************************************************************
417     * <p>Checks if the field's length is less than or equal to the maximum value. A <code>Null</code>
418     * will be considered an error.</p>
419     *
420     * @param bean The bean validation is being performed on.
421     * @param va The <code>ValidatorAction</code> used to retrieve validator information.
422     * @param field The <code>Field</code> object associated with the current field being validated.
423     * @param errors The <code>Vector</code> object used by DBForms to add errors to if any validation errors occur.
424     * @param locale The <code>Locale</code> object of the Request.
425          * @param dbFormsErrors DbForms Error class to retrieve error message in DbForm-Errors.xml format.
426     ********************************************************************************************/

427    public static boolean validateMaxLength(Object JavaDoc bean,
428                                            ValidatorAction va,
429                                            Field field,
430                                            Vector JavaDoc errors,
431                                            Locale JavaDoc locale,
432                                            DbFormsErrors dbFormsErrors) {
433       String JavaDoc value = getValue(bean, field);
434
435       if (!Util.isNull(value)) {
436          String JavaDoc sMaxLength = field.getVarValue("maxlength");
437          int max = Integer.parseInt(sMaxLength);
438
439          if (!GenericValidator.maxLength(value, max)) {
440             errors.add(new ValidationException(dbFormsErrorMessage(MAXLENGTH,
441                                                                    va, field,
442                                                                    locale,
443                                                                    dbFormsErrors)));
444
445             return false;
446          }
447       }
448
449       return true;
450    }
451
452
453    /********************************************************************************************
454     * <p>Checks if the field's length is greater than or equal to the minimum value.
455     * A <code>Null</code> will be considered an error.</p>
456     *
457     * @param bean The bean validation is being performed on.
458     * @param va The <code>ValidatorAction</code> used to retrieve validator information.
459     * @param field The <code>Field</code> object associated with the current field being validated.
460     * @param errors The <code>Vector</code> object used by DBForms to add errors to if any validation errors occur.
461     * @param locale The <code>Locale</code> object of the Request.
462          * @param dbFormsErrors DbForms Error class to retrieve error message in DbForm-Errors.xml format.
463     ********************************************************************************************/

464    public static boolean validateMinLength(Object JavaDoc bean,
465                                            ValidatorAction va,
466                                            Field field,
467                                            Vector JavaDoc errors,
468                                            Locale JavaDoc locale,
469                                            DbFormsErrors dbFormsErrors) {
470       String JavaDoc value = getValue(bean, field);
471
472       if (!Util.isNull(value)) {
473          String JavaDoc sMinLength = field.getVarValue("minlength");
474
475          int min = Integer.parseInt(sMinLength);
476
477          if (!GenericValidator.minLength(value, min)) {
478             errors.add(new ValidationException(dbFormsErrorMessage(MINLENGTH,
479                                                                    va, field,
480                                                                    locale,
481                                                                    dbFormsErrors)));
482
483             return false;
484          }
485       }
486
487       return true;
488    }
489
490
491    /********************************************************************************************
492     * <p>Checks if a fields value is within a range (min &amp; max specified
493     * in the vars attribute).</p>
494     *
495     * @param bean The bean validation is being performed on.
496     * @param va The <code>ValidatorAction</code> used to retrieve validator information.
497     * @param field The <code>Field</code> object associated with the current field being validated.
498     * @param errors The <code>Vector</code> object used by DBForms to add errors to if any validation errors occur.
499     * @param locale The <code>Locale</code> object of the Request.
500          * @param dbFormsErrors DbForms Error class to retrieve error message in DbForm-Errors.xml format.
501     ********************************************************************************************/

502    public static boolean validateRange(Object JavaDoc bean,
503                                        ValidatorAction va,
504                                        Field field,
505                                        Vector JavaDoc errors,
506                                        Locale JavaDoc locale,
507                                        DbFormsErrors dbFormsErrors) {
508       String JavaDoc value = getValue(bean, field);
509
510       if (!Util.isNull(value)) {
511          String JavaDoc sMin = field.getVarValue("min");
512          String JavaDoc sMax = field.getVarValue("max");
513          double iValue = Double.parseDouble(value);
514          double min = Double.parseDouble(sMin);
515          double max = Double.parseDouble(sMax);
516
517          if (!GenericValidator.isInRange(iValue, min, max)) {
518             errors.add(new ValidationException(dbFormsErrorMessage(RANGE, va,
519                                                                    field,
520                                                                    locale,
521                                                                    dbFormsErrors)));
522
523             return false;
524          }
525       }
526
527       return true;
528    }
529
530
531    /*********************************************************************************************
532     * <p>Checks if the field isn't null and length of the field is greater than zero not
533     * including whitespace.</p>
534     *
535     * @param bean The bean validation is being performed on.
536     * @param va The <code>ValidatorAction</code> used to retrieve validator information.
537     * @param field The <code>Field</code> object associated with the current field being validated.
538     * @param errors The <code>Vector</code> object used by DBForms to add errors to, if any validation errors occur.
539     * @param locale The <code>Locale</code> object of the Request.
540          * @param dbFormsErrors DbForms Error class to retrieve error message in DbForm-Errors.xml format.
541     ********************************************************************************************/

542    public static boolean validateRequired(Object JavaDoc bean,
543                                           ValidatorAction va,
544                                           Field field,
545                                           Vector JavaDoc errors,
546                                           Locale JavaDoc locale,
547                                           DbFormsErrors dbFormsErrors) {
548       FieldValues hash = (FieldValues) bean;
549
550       if (Util.isNull(field.getProperty())) {
551          return true;
552       }
553
554       FieldValue f = hash.get(field.getProperty());
555
556       if (f == null) {
557          // Field not found in fieldvector -> so it's not on current page.
558
// So we will not check it!
559
return true;
560       }
561
562       /********************************************
563        * Grunikiewicz.philip@hydro.qc.ca
564        * 2003-12-03
565        *
566        * When a validation returns multiple errors and the user corrects these problems one at a time,
567        * it is important to verify that the value is not null or empty.
568        */

569       if (f.getFieldValue()
570                  .equals(f.getOldValue())
571                 && !(Util.isNull(f.getFieldValue()))) {
572          // Check only if new value != old value!
573
return true;
574       }
575
576       String JavaDoc value = null;
577       Object JavaDoc obj = f.getFieldValueAsObject();
578
579       if (obj != null) {
580          value = obj.toString();
581       }
582
583       if (GenericValidator.isBlankOrNull(value)) {
584          errors.add(new ValidationException(dbFormsErrorMessage(REQUIRED, va,
585                                                                 field, locale,
586                                                                 dbFormsErrors)));
587
588          return false;
589       } else {
590          return true;
591       }
592    }
593
594
595    /********************************************************************************************
596     * <p>Checks if the field can safely be converted to a short primitive.</p>
597     *
598     * @param bean The bean validation is being performed on.
599     * @param va The <code>ValidatorAction</code> used to retrieve validator information.
600     * @param field The <code>Field</code> object associated with the current field being validated.
601     * @param errors The <code>Vector</code> object used by DBForms to add errors to if any validation errors occur.
602     * @param locale The <code>Locale</code> object of the Request.
603          * @param dbFormsErrors DbForms Error class to retrieve error message in DbForm-Errors.xml format.
604     ********************************************************************************************/

605    public static boolean validateShort(Object JavaDoc bean,
606                                        ValidatorAction va,
607                                        Field field,
608                                        Vector JavaDoc errors,
609                                        Locale JavaDoc locale,
610                                        DbFormsErrors dbFormsErrors) {
611       String JavaDoc value = getValue(bean, field);
612
613       if (!Util.isNull(value)) {
614          if (!GenericValidator.isShort(value)) {
615             errors.add(new ValidationException(dbFormsErrorMessage(SHORT, va,
616                                                                    field,
617                                                                    locale,
618                                                                    dbFormsErrors)));
619
620             return false;
621          } else {
622             return true;
623          }
624       }
625
626       return true;
627    }
628
629
630    //***************************************************************************************************
631
//*** P R I V A T E
632
//***************************************************************************************************
633
private static String JavaDoc getValue(Object JavaDoc bean,
634                                   Field field) {
635       try {
636          FieldValues hash = (FieldValues) bean;
637
638          if (Util.isNull(field.getProperty())) {
639             return null;
640          }
641
642          FieldValue f = hash.get(field.getProperty());
643
644          if (f == null) {
645             // Field not found in fieldvector -> so it's not on current page.
646
// So we will not check it!
647
return null;
648          }
649
650          /********************************************
651          * Grunikiewicz.philip@hydro.qc.ca
652          * 2003-12-04
653          *
654          * When inserting new data, it can happen that a default value is assigned.
655          * Hence the old value and new value are identical.
656          * Does this mean that we should not validate it! I don't think so...
657          *
658          * Henner.Kollmann@gmx.de
659          * 2003-12-05
660          *
661          * in isertmode oldvalue is alway empty now, so that check will be true!
662          * if you do not do this compare all values on form will be validated. This
663          * may leed to unexpected validation if the values in the database are wrong
664          */

665          if (f.getFieldValue()
666                     .equals(f.getOldValue())) {
667             // Check only if new value != old value!
668
return null;
669          }
670
671          String JavaDoc value = null;
672          Object JavaDoc obj = f.getFieldValueAsObject();
673
674          if (obj != null) {
675             value = obj.toString();
676          } else {
677             value = f.getFieldValue();
678          }
679
680          return value;
681       } catch (Exception JavaDoc e) {
682          logCat.error(e);
683
684          return null;
685       }
686    }
687
688
689    /********************************************************************************************
690    * <p>Generate error message with the ResourceBundle error format if enable or
691    * DBForms error standard format (dbforms_error.xml).
692     *</p>
693    *
694    * @param type Type name to retrieve <msg name="..."> and <arg name="..."> keys.
695    * @param va The <code>ValidatorAction</code> object associated with the current field.
696    * @param field The <code>Field</code> object associated with the current field being validated.
697    * @param locale The <code>Locale</code> object of the Request.
698      * @param dbFormsErrors DbForms Error class to retrieve error message in DbForm-Errors.xml format.
699    ********************************************************************************************/

700    private static String JavaDoc dbFormsErrorMessage(String JavaDoc type,
701                                              ValidatorAction va,
702                                              Field field,
703                                              Locale JavaDoc locale,
704                                              DbFormsErrors dbFormsErrors) {
705       //2003-01-31 HKK: Removed field.getMsg. It's handled in DbFormsValidatorUtil.getMessage
706
String JavaDoc message = DbFormsValidatorUtil.getMessage(type, va, locale, field,
707                                                        dbFormsErrors);
708
709       return message;
710    }
711 }
712
Popular Tags