1
2
3
4
5
6
7
8
9
10
11
12
13
14
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
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