    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *      http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   */
    17  package org.apache.commons.validator;
    18
    19  import java.util.*;
    20
    21  import org.apache.commons.validator.util.ValidatorUtils;
    22
    23  /***
    24   * Contains validation methods for different unit tests.
    25   *
    26   * @version $Revision: 478334 $ $Date: 2006-11-22 21:31:54 +0000 (Wed, 22 Nov 2006) $
    27   */
    28  public class TestTypeValidator {
    29
    30     /***
    31      * Checks if the field can be successfully converted to a <code>byte</code>.
    32      *
    33      * @param value The value validation is being performed on.
    34      * @return boolean If the field can be successfully converted
    35      * to a <code>byte</code> <code>true</code> is returned.
    36      * Otherwise <code>false</code>.
    37      */
    38     public static Byte validateByte(Object bean, Field field) {
    39        String value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    40
    41        return GenericTypeValidator.formatByte(value);
    42     }
    43
    44     /***
    45      * Checks if the field can be successfully converted to a <code>byte</code>.
    46      *
    47      * @param value The value validation is being performed on.
    48      * @return boolean If the field can be successfully converted
    49      * to a <code>byte</code> <code>true</code> is returned.
    50      * Otherwise <code>false</code>.
    51      */
    52     public static Byte validateByte(Object bean, Field field, Locale locale) {
    53        String value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    54
    55        return GenericTypeValidator.formatByte(value, locale);
    56     }
    57
    58     /***
    59      * Checks if the field can be successfully converted to a <code>short</code>.
    60      *
    61      * @param value The value validation is being performed on.
    62      * @return boolean If the field can be successfully converted
    63      * to a <code>short</code> <code>true</code> is returned.
    64      * Otherwise <code>false</code>.
    65      */
    66     public static Short validateShort(Object bean, Field field) {
    67        String value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    68
    69        return GenericTypeValidator.formatShort(value);
    70     }
    71
    72     /***
    73      * Checks if the field can be successfully converted to a <code>short</code>.
    74      *
    75      * @param value The value validation is being performed on.
    76      * @return boolean If the field can be successfully converted
    77      * to a <code>short</code> <code>true</code> is returned.
    78      * Otherwise <code>false</code>.
    79      */
    80     public static Short validateShort(Object bean, Field field, Locale locale) {
    81        String value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    82
    83        return GenericTypeValidator.formatShort(value, locale);
    84     }
    85
    86     /***
    87      * Checks if the field can be successfully converted to a <code>int</code>.
    88      *
    89      * @param value The value validation is being performed on.
    90      * @return boolean If the field can be successfully converted
    91      * to a <code>int</code> <code>true</code> is returned.
    92      * Otherwise <code>false</code>.
    93      */
    94     public static Integer validateInt(Object bean, Field field) {
    95        String value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    96
    97        return GenericTypeValidator.formatInt(value);
    98     }
    99
    100    /***
    101     * Checks if the field can be successfully converted to a <code>int</code>.
    102     *
    103     * @param value The value validation is being performed on.
    104     * @return boolean If the field can be successfully converted
    105     * to a <code>int</code> <code>true</code> is returned.
    106     * Otherwise <code>false</code>.
    107     */
    108    public static Integer validateInt(Object bean, Field field, Locale locale) {
    109       String value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    110
    111       return GenericTypeValidator.formatInt(value, locale);
    112    }
    113
    114    /***
    115     * Checks if the field can be successfully converted to a <code>long</code>.
    116     *
    117     * @param value The value validation is being performed on.
    118     * @return boolean If the field can be successfully converted
    119     * to a <code>long</code> <code>true</code> is returned.
    120     * Otherwise <code>false</code>.
    121     */
    122    public static Long validateLong(Object bean, Field field) {
    123       String value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    124
    125       return GenericTypeValidator.formatLong(value);
    126    }
    127
    128    /***
    129     * Checks if the field can be successfully converted to a <code>long</code>.
    130     *
    131     * @param value The value validation is being performed on.
    132     * @return boolean If the field can be successfully converted
    133     * to a <code>long</code> <code>true</code> is returned.
    134     * Otherwise <code>false</code>.
    135     */
    136    public static Long validateLong(Object bean, Field field, Locale locale) {
    137       String value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    138
    139       return GenericTypeValidator.formatLong(value, locale);
    140    }
    141
    142    /***
    143     * Checks if the field can be successfully converted to a <code>float</code>.
    144     *
    145     * @param value The value validation is being performed on.
    146     * @return boolean If the field can be successfully converted
    147     * to a <code>float</code> <code>true</code> is returned.
    148     * Otherwise <code>false</code>.
    149     */
    150    public static Float validateFloat(Object bean, Field field) {
    151       String value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    152
    153       return GenericTypeValidator.formatFloat(value);
    154    }
    155
    156    /***
    157     * Checks if the field can be successfully converted to a <code>float</code>.
    158     *
    159     * @param value The value validation is being performed on.
    160     * @return boolean If the field can be successfully converted
    161     * to a <code>float</code> <code>true</code> is returned.
    162     * Otherwise <code>false</code>.
    163     */
    164    public static Float validateFloat(Object bean, Field field, Locale locale) {
    165       String value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    166
    167       return GenericTypeValidator.formatFloat(value, locale);
    168    }
    169
    170    /***
    171     * Checks if the field can be successfully converted to a <code>double</code>.
    172     *
    173     * @param value The value validation is being performed on.
    174     * @return boolean If the field can be successfully converted
    175     * to a <code>double</code> <code>true</code> is returned.
    176     * Otherwise <code>false</code>.
    177     */
    178    public static Double validateDouble(Object bean, Field field) {
    179       String value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    180
    181       return GenericTypeValidator.formatDouble(value);
    182    }
    183
    184    /***
    185     * Checks if the field can be successfully converted to a <code>double</code>.
    186     *
    187     * @param value The value validation is being performed on.
    188     * @return boolean If the field can be successfully converted
    189     * to a <code>double</code> <code>true</code> is returned.
    190     * Otherwise <code>false</code>.
    191     */
    192    public static Double validateDouble(Object bean, Field field, Locale locale) {
    193       String value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    194
    195       return GenericTypeValidator.formatDouble(value, locale);
    196    }
    197
    198    /***
    199     * Checks if the field can be successfully converted to a <code>date</code>.
    200     *
    201     * @param value The value validation is being performed on.
    202     * @return boolean If the field can be successfully converted
    203     * to a <code>date</code> <code>true</code> is returned.
    204     * Otherwise <code>false</code>.
    205     */
    206    public static Date validateDate(Object bean, Field field, Locale locale) {
    207       String value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    208
    209       return GenericTypeValidator.formatDate(value, locale);
    210    }
    211
    212    /***
    213     * Checks if the field can be successfully converted to a <code>date</code>.
    214     *
    215     * @param value The value validation is being performed on.
    216     * @return boolean If the field can be successfully converted
    217     * to a <code>date</code> <code>true</code> is returned.
    218     * Otherwise <code>false</code>.
    219     */
    220    public static Date validateDate(Object bean, Field field) {
    221       String value = ValidatorUtils.getValueAsString(bean, field.getProperty());
    222       String datePattern = field.getVarValue("datePattern");
    223       String datePatternStrict = field.getVarValue("datePatternStrict");
    224
    225       Date result = null;
    226       if (datePattern != null && datePattern.length() > 0) {
    227             result = GenericTypeValidator.formatDate(value, datePattern, false);
    228         } else if (datePatternStrict != null && datePatternStrict.length() > 0) {
    229             result = GenericTypeValidator.formatDate(value, datePatternStrict, true);
    230         }
    231
    232       return result;
    233    }
    234 }