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.util.Locale;
    21  import java.text.ParseException;
    22
    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.lang.Long</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 LongLocaleConverter extends DecimalLocaleConverter {
    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 LongLocaleConverter() {
    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 LongLocaleConverter(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 LongLocaleConverter(Locale locale) {
    74
    75          this(locale, false);
    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 LongLocaleConverter(Locale locale, boolean locPattern) {
    87
    88          this(locale, (String) null, locPattern);
    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 LongLocaleConverter(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 LongLocaleConverter(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 LongLocaleConverter(Object defaultValue) {
    128
    129         this(defaultValue, false);
    130     }
    131
    132     /***
    133      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
    134      * that will return the specified default value
    135      * if a conversion error occurs. The locale is the default locale for
    136      * this instance of the Java Virtual Machine.
    137      *
    138      * @param defaultValue  The default value to be returned
    139      * @param locPattern    Indicate whether the pattern is localized or not
    140      */
    141     public LongLocaleConverter(Object defaultValue, boolean locPattern) {
    142
    143         this(defaultValue, Locale.getDefault(), locPattern);
    144     }
    145
    146     /***
    147      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
    148      * that will return the specified default value
    149      * if a conversion error occurs. An unlocalized pattern is used for the convertion.
    150      *
    151      * @param defaultValue  The default value to be returned
    152      * @param locale        The locale
    153      */
    154     public LongLocaleConverter(Object defaultValue, Locale locale) {
    155
    156         this(defaultValue, locale, false);
    157     }
    158
    159     /***
    160      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
    161      * that will return the specified default value
    162      * if a conversion error occurs.
    163      *
    164      * @param defaultValue  The default value to be returned
    165      * @param locale        The locale
    166      * @param locPattern    Indicate whether the pattern is localized or not
    167      */
    168     public LongLocaleConverter(Object defaultValue, Locale locale, boolean locPattern) {
    169
    170         this(defaultValue, locale, null, locPattern);
    171     }
    172
    173     /***
    174      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
    175      * that will return the specified default value
    176      * if a conversion error occurs. An unlocalized pattern is used for the convertion.
    177      *
    178      * @param defaultValue  The default value to be returned
    179      * @param locale        The locale
    180      * @param pattern       The convertion pattern
    181      */
    182     public LongLocaleConverter(Object defaultValue, Locale locale, String pattern) {
    183
    184         this(defaultValue, locale, pattern, false);
    185     }
    186
    187     /***
    188      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
    189      * that will return the specified default value
    190      * if a conversion error occurs.
    191      *
    192      * @param defaultValue  The default value to be returned
    193      * @param locale        The locale
    194      * @param pattern       The convertion pattern
    195      * @param locPattern    Indicate whether the pattern is localized or not
    196      */
    197     public LongLocaleConverter(Object defaultValue, Locale locale, String pattern, boolean locPattern) {
    198
    199         super(defaultValue, locale, pattern, locPattern);
    200     }
    201
    202     /***
    203      * Convert the specified locale-sensitive input object into an output object of the
    204      * specified type. This method will return a Long type.
    205      *
    206      * @param value The input object to be converted
    207      * @param pattern The pattern is used for the convertion
    208      * @return The converted value
    209      *
    210      * @exception org.apache.commons.beanutils.ConversionException if conversion
    211      * cannot be performed successfully
    212      * @throws ParseException if an error occurs parsing a String to a Number
    213      */
    214     protected Object parse(Object value, String pattern) throws ParseException {
    215
    216         Object result = super.parse(value, pattern);
    217
    218         if (result == null || result instanceof Long) {
    219             return result;
    220         }
    221
    222         return new Long(((Number)result).longValue());
    223
    224     }
    225 }