View Javadoc

    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
    18  package org.apache.commons.beanutils.locale.converters;
    19
    20  import java.sql.Timestamp;
    21  import java.text.ParseException;
    22  import java.util.Locale;
    23
    24  /***
    25   * <p>Standard {@link org.apache.commons.beanutils.locale.LocaleConverter}
    26   * implementation that converts an incoming
    27   * locale-sensitive String into a <code>java.sql.Timestamp</code> object,
    28   * optionally using a default value or throwing a
    29   * {@link org.apache.commons.beanutils.ConversionException}
    30   * if a conversion error occurs.</p>
    31   *
    32   * @author Yauheny Mikulski
    33   */
    34
    35  public class SqlTimestampLocaleConverter extends DateLocaleConverter {
    36
    37
    38      // ----------------------------------------------------------- Constructors
    39
    40      /***
    41       * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
    42       * that will throw a {@link org.apache.commons.beanutils.ConversionException}
    43       * if a conversion error occurs. The locale is the default locale for
    44       * this instance of the Java Virtual Machine and an unlocalized pattern is used
    45       * for the convertion.
    46       *
    47       */
    48      public SqlTimestampLocaleConverter() {
    49
    50          this(false);
    51      }
    52
    53      /***
    54       * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
    55       * that will throw a {@link org.apache.commons.beanutils.ConversionException}
    56       * if a conversion error occurs. The locale is the default locale for
    57       * this instance of the Java Virtual Machine.
    58       *
    59       * @param locPattern    Indicate whether the pattern is localized or not
    60       */
    61      public SqlTimestampLocaleConverter(boolean locPattern) {
    62
    63          this(Locale.getDefault(), locPattern);
    64      }
    65
    66      /***
    67       * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
    68       * that will throw a {@link org.apache.commons.beanutils.ConversionException}
    69       * if a conversion error occurs. An unlocalized pattern is used for the convertion.
    70       *
    71       * @param locale        The locale
    72       */
    73      public SqlTimestampLocaleConverter(Locale locale) {
    74
    75          this(locale, (String) null);
    76      }
    77
    78      /***
    79       * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
    80       * that will throw a {@link org.apache.commons.beanutils.ConversionException}
    81       * if a conversion error occurs.
    82       *
    83       * @param locale        The locale
    84       * @param locPattern    Indicate whether the pattern is localized or not
    85       */
    86      public SqlTimestampLocaleConverter(Locale locale, boolean locPattern) {
    87
    88          this(locale, (String) null);
    89      }
    90
    91      /***
    92       * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
    93       * that will throw a {@link org.apache.commons.beanutils.ConversionException}
    94       * if a conversion error occurs. An unlocalized pattern is used for the convertion.
    95       *
    96       * @param locale        The locale
    97       * @param pattern       The convertion pattern
    98       */
    99      public SqlTimestampLocaleConverter(Locale locale, String pattern) {
    100
    101         this(locale, pattern, false);
    102     }
    103
    104     /***
    105      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
    106      * that will throw a {@link org.apache.commons.beanutils.ConversionException}
    107      * if a conversion error occurs.
    108      *
    109      * @param locale        The locale
    110      * @param pattern       The convertion pattern
    111      * @param locPattern    Indicate whether the pattern is localized or not
    112      */
    113     public SqlTimestampLocaleConverter(Locale locale, String pattern, boolean locPattern) {
    114
    115         super(locale, pattern, locPattern);
    116     }
    117
    118     /***
    119      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
    120      * that will return the specified default value
    121      * if a conversion error occurs. The locale is the default locale for
    122      * this instance of the Java Virtual Machine and an unlocalized pattern is used
    123      * for the convertion.
    124      *
    125      * @param defaultValue  The default value to be returned
    126      */
    127     public SqlTimestampLocaleConverter(Object defaultValue) {
    128         this(defaultValue, false);
    129     }
    130
    131     /***
    132      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
    133      * that will return the specified default value
    134      * if a conversion error occurs. The locale is the default locale for
    135      * this instance of the Java Virtual Machine.
    136      *
    137      * @param defaultValue  The default value to be returned
    138      * @param locPattern    Indicate whether the pattern is localized or not
    139      */
    140     public SqlTimestampLocaleConverter(Object defaultValue, boolean locPattern) {
    141
    142         this(defaultValue, Locale.getDefault(), locPattern);
    143     }
    144
    145     /***
    146      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
    147      * that will return the specified default value
    148      * if a conversion error occurs. An unlocalized pattern is used for the convertion.
    149      *
    150      * @param defaultValue  The default value to be returned
    151      * @param locale        The locale
    152      */
    153     public SqlTimestampLocaleConverter(Object defaultValue, Locale locale) {
    154
    155         this(defaultValue, locale, false);
    156     }
    157
    158     /***
    159      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
    160      * that will return the specified default value
    161      * if a conversion error occurs.
    162      *
    163      * @param defaultValue  The default value to be returned
    164      * @param locale        The locale
    165      * @param locPattern    Indicate whether the pattern is localized or not
    166      */
    167     public SqlTimestampLocaleConverter(Object defaultValue, Locale locale, boolean locPattern) {
    168
    169         this(defaultValue, locale, null, locPattern);
    170     }
    171
    172     /***
    173      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
    174      * that will return the specified default value
    175      * if a conversion error occurs. An unlocalized pattern is used for the convertion.
    176      *
    177      * @param defaultValue  The default value to be returned
    178      * @param locale        The locale
    179      * @param pattern       The convertion pattern
    180      */
    181     public SqlTimestampLocaleConverter(Object defaultValue, Locale locale, String pattern) {
    182
    183         this(defaultValue, locale, pattern, false);
    184     }
    185
    186     /***
    187      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
    188      * that will return the specified default value
    189      * if a conversion error occurs.
    190      *
    191      * @param defaultValue  The default value to be returned
    192      * @param locale        The locale
    193      * @param pattern       The convertion pattern
    194      * @param locPattern    Indicate whether the pattern is localized or not
    195      */
    196     public SqlTimestampLocaleConverter(Object defaultValue, Locale locale, String pattern, boolean locPattern) {
    197
    198         super(defaultValue, locale, pattern, locPattern);
    199     }
    200
    201     // --------------------------------------------------------- Methods
    202
    203     /***
    204      * Convert the specified locale-sensitive input object into an output object of the
    205      * specified type.
    206      *
    207      * @param value The input object to be converted
    208      * @param pattern The pattern is used for the convertion
    209      * @return The converted value
    210      *
    211      * @exception org.apache.commons.beanutils.ConversionException if conversion
    212      * cannot be performed successfully
    213      * @throws ParseException if an error occurs parsing a String to a Number
    214      */
    215     protected Object parse(Object value, String pattern) throws ParseException {
    216
    217         return new Timestamp(((java.util.Date) super.parse(value, pattern)).getTime());
    218     }
    219 }