View Javadoc

1   /*
2    * Copyright 2001-2004 The Apache Software Foundation.
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * 
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    * 
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */ 
16  
17  package org.apache.commons.beanutils.locale.converters;
18  
19  
20  import java.text.ParseException;
21  import java.util.Locale;
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.Double</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 DoubleLocaleConverter 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 DoubleLocaleConverter() {
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 DoubleLocaleConverter(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 DoubleLocaleConverter(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 DoubleLocaleConverter(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 DoubleLocaleConverter(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 DoubleLocaleConverter(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 DoubleLocaleConverter(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 DoubleLocaleConverter(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 DoubleLocaleConverter(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 DoubleLocaleConverter(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 DoubleLocaleConverter(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 DoubleLocaleConverter(Object defaultValue, Locale locale, String pattern, boolean locPattern) {
198 
199         super(defaultValue, locale, pattern);
200     }
201 
202     protected Object parse(Object value, String pattern) throws ParseException {
203         Number result = (Number) super.parse(value, pattern);
204         if (result instanceof Long) {
205             return new Double(result.doubleValue());
206         } else {
207             return (result);
208         }
209     }
210 
211 
212 }
213 
214