KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > beanutils > locale > converters > FloatLocaleConverter


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 import org.apache.commons.beanutils.ConversionException;
20
21 import java.util.Locale JavaDoc;
22 import java.text.ParseException JavaDoc;
23
24
25 /**
26  * <p>Standard {@link org.apache.commons.beanutils.locale.LocaleConverter}
27  * implementation that converts an incoming
28  * locale-sensitive String into a <code>java.math.BigDecimal</code> object,
29  * optionally using a default value or throwing a
30  * {@link org.apache.commons.beanutils.ConversionException}
31  * if a conversion error occurs.</p>
32  *
33  * @author Yauheny Mikulski
34  */

35
36 public class FloatLocaleConverter extends DecimalLocaleConverter {
37
38
39     // ----------------------------------------------------------- Constructors
40

41     /**
42      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
43      * that will throw a {@link org.apache.commons.beanutils.ConversionException}
44      * if a conversion error occurs. The locale is the default locale for
45      * this instance of the Java Virtual Machine and an unlocalized pattern is used
46      * for the convertion.
47      *
48      */

49     public FloatLocaleConverter() {
50
51         this(false);
52     }
53
54     /**
55      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
56      * that will throw a {@link org.apache.commons.beanutils.ConversionException}
57      * if a conversion error occurs. The locale is the default locale for
58      * this instance of the Java Virtual Machine.
59      *
60      * @param locPattern Indicate whether the pattern is localized or not
61      */

62     public FloatLocaleConverter(boolean locPattern) {
63
64         this(Locale.getDefault(), locPattern);
65     }
66
67     /**
68      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
69      * that will throw a {@link org.apache.commons.beanutils.ConversionException}
70      * if a conversion error occurs. An unlocalized pattern is used for the convertion.
71      *
72      * @param locale The locale
73      */

74     public FloatLocaleConverter(Locale JavaDoc locale) {
75
76         this(locale, false);
77     }
78
79     /**
80      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
81      * that will throw a {@link org.apache.commons.beanutils.ConversionException}
82      * if a conversion error occurs.
83      *
84      * @param locale The locale
85      * @param locPattern Indicate whether the pattern is localized or not
86      */

87     public FloatLocaleConverter(Locale JavaDoc locale, boolean locPattern) {
88
89         this(locale, (String JavaDoc) null, locPattern);
90     }
91
92     /**
93      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
94      * that will throw a {@link org.apache.commons.beanutils.ConversionException}
95      * if a conversion error occurs. An unlocalized pattern is used for the convertion.
96      *
97      * @param locale The locale
98      * @param pattern The convertion pattern
99      */

100     public FloatLocaleConverter(Locale JavaDoc locale, String JavaDoc pattern) {
101
102         this(locale, pattern, false);
103     }
104
105     /**
106      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
107      * that will throw a {@link org.apache.commons.beanutils.ConversionException}
108      * if a conversion error occurs.
109      *
110      * @param locale The locale
111      * @param pattern The convertion pattern
112      * @param locPattern Indicate whether the pattern is localized or not
113      */

114     public FloatLocaleConverter(Locale JavaDoc locale, String JavaDoc pattern, boolean locPattern) {
115
116         super(locale, pattern, locPattern);
117     }
118
119     /**
120      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
121      * that will return the specified default value
122      * if a conversion error occurs. The locale is the default locale for
123      * this instance of the Java Virtual Machine and an unlocalized pattern is used
124      * for the convertion.
125      *
126      * @param defaultValue The default value to be returned
127      */

128     public FloatLocaleConverter(Object JavaDoc defaultValue) {
129
130         this(defaultValue, false);
131     }
132
133     /**
134      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
135      * that will return the specified default value
136      * if a conversion error occurs. The locale is the default locale for
137      * this instance of the Java Virtual Machine.
138      *
139      * @param defaultValue The default value to be returned
140      * @param locPattern Indicate whether the pattern is localized or not
141      */

142     public FloatLocaleConverter(Object JavaDoc defaultValue, boolean locPattern) {
143
144         this(defaultValue, Locale.getDefault(), locPattern);
145     }
146
147     /**
148      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
149      * that will return the specified default value
150      * if a conversion error occurs. An unlocalized pattern is used for the convertion.
151      *
152      * @param defaultValue The default value to be returned
153      * @param locale The locale
154      */

155     public FloatLocaleConverter(Object JavaDoc defaultValue, Locale JavaDoc locale) {
156
157         this(defaultValue, locale, false);
158     }
159
160     /**
161      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
162      * that will return the specified default value
163      * if a conversion error occurs.
164      *
165      * @param defaultValue The default value to be returned
166      * @param locale The locale
167      * @param locPattern Indicate whether the pattern is localized or not
168      */

169     public FloatLocaleConverter(Object JavaDoc defaultValue, Locale JavaDoc locale, boolean locPattern) {
170
171         this(defaultValue, locale, null, locPattern);
172     }
173
174     /**
175      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
176      * that will return the specified default value
177      * if a conversion error occurs. An unlocalized pattern is used for the convertion.
178      *
179      * @param defaultValue The default value to be returned
180      * @param locale The locale
181      * @param pattern The convertion pattern
182      */

183     public FloatLocaleConverter(Object JavaDoc defaultValue, Locale JavaDoc locale, String JavaDoc pattern) {
184
185         this(defaultValue, locale, pattern, false);
186     }
187
188     /**
189      * Create a {@link org.apache.commons.beanutils.locale.LocaleConverter}
190      * that will return the specified default value
191      * if a conversion error occurs.
192      *
193      * @param defaultValue The default value to be returned
194      * @param locale The locale
195      * @param pattern The convertion pattern
196      * @param locPattern Indicate whether the pattern is localized or not
197      */

198     public FloatLocaleConverter(Object JavaDoc defaultValue, Locale JavaDoc locale, String JavaDoc pattern, boolean locPattern) {
199
200         super(defaultValue, locale, pattern);
201     }
202
203    /**
204     * Convert the specified locale-sensitive input object into an output object of the
205     * specified type. This method will return Float value or throw exception if value
206     * can not be stored in the Float.
207     *
208     * @param value The input object to be converted
209     * @param pattern The pattern is used for the convertion
210     *
211     * @exception ConversionException if conversion cannot be performed
212     * successfully
213     */

214    protected Object JavaDoc parse(Object JavaDoc value, String JavaDoc pattern) throws ParseException JavaDoc {
215       final Number JavaDoc parsed = (Number JavaDoc) super.parse(value, pattern);
216       if( Math.abs(parsed.doubleValue() - parsed.floatValue()) > parsed.floatValue() * 0.00001 ) {
217          throw new ConversionException("Suplied number is not of type Float: "+parsed.longValue());
218       }
219       return new Float JavaDoc(parsed.floatValue()); // unlike superclass it returns Float type
220
}
221 }
222
Popular Tags