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