001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017
018
019 package org.apache.commons.beanutils;
020
021 /**
022 * <p>Utility methods for converting String scalar values to objects of the
023 * specified Class, String arrays to arrays of the specified Class.</p>
024 *
025 * <p>For more details, see <code>ConvertUtilsBean</code> which provides the
026 * implementations for these methods.</p>
027 *
028 * @author Craig R. McClanahan
029 * @author Ralph Schaer
030 * @author Chris Audley
031 * @version $Revision: 556229 $ $Date: 2007-07-14 02:11:19 -0400 (Sat, 14 Jul 2007) $
032 * @see ConvertUtilsBean
033 */
034
035 public class ConvertUtils {
036
037
038 // ------------------------------------------------------ Static Properties
039
040 /**
041 * Gets the default value for Boolean conversions.
042 * @return The default Boolean value
043 * @deprecated Register replacement converters for Boolean.TYPE and
044 * Boolean.class instead
045 */
046 public static boolean getDefaultBoolean() {
047 return (ConvertUtilsBean.getInstance().getDefaultBoolean());
048 }
049
050 /**
051 * Sets the default value for Boolean conversions.
052 * @param newDefaultBoolean The default Boolean value
053 * @deprecated Register replacement converters for Boolean.TYPE and
054 * Boolean.class instead
055 */
056 public static void setDefaultBoolean(boolean newDefaultBoolean) {
057 ConvertUtilsBean.getInstance().setDefaultBoolean(newDefaultBoolean);
058 }
059
060
061 /**
062 * Gets the default value for Byte conversions.
063 * @return The default Byte value
064 * @deprecated Register replacement converters for Byte.TYPE and
065 * Byte.class instead
066 */
067 public static byte getDefaultByte() {
068 return ConvertUtilsBean.getInstance().getDefaultByte();
069 }
070
071 /**
072 * Sets the default value for Byte conversions.
073 * @param newDefaultByte The default Byte value
074 * @deprecated Register replacement converters for Byte.TYPE and
075 * Byte.class instead
076 */
077 public static void setDefaultByte(byte newDefaultByte) {
078 ConvertUtilsBean.getInstance().setDefaultByte(newDefaultByte);
079 }
080
081
082 /**
083 * Gets the default value for Character conversions.
084 * @return The default Character value
085 * @deprecated Register replacement converters for Character.TYPE and
086 * Character.class instead
087 */
088 public static char getDefaultCharacter() {
089 return ConvertUtilsBean.getInstance().getDefaultCharacter();
090 }
091
092 /**
093 * Sets the default value for Character conversions.
094 * @param newDefaultCharacter The default Character value
095 * @deprecated Register replacement converters for Character.TYPE and
096 * Character.class instead
097 */
098 public static void setDefaultCharacter(char newDefaultCharacter) {
099 ConvertUtilsBean.getInstance().setDefaultCharacter(newDefaultCharacter);
100 }
101
102
103 /**
104 * Gets the default value for Double conversions.
105 * @return The default Double value
106 * @deprecated Register replacement converters for Double.TYPE and
107 * Double.class instead
108 */
109 public static double getDefaultDouble() {
110 return ConvertUtilsBean.getInstance().getDefaultDouble();
111 }
112
113 /**
114 * Sets the default value for Double conversions.
115 * @param newDefaultDouble The default Double value
116 * @deprecated Register replacement converters for Double.TYPE and
117 * Double.class instead
118 */
119 public static void setDefaultDouble(double newDefaultDouble) {
120 ConvertUtilsBean.getInstance().setDefaultDouble(newDefaultDouble);
121 }
122
123
124 /**
125 * Get the default value for Float conversions.
126 * @return The default Float value
127 * @deprecated Register replacement converters for Float.TYPE and
128 * Float.class instead
129 */
130 public static float getDefaultFloat() {
131 return ConvertUtilsBean.getInstance().getDefaultFloat();
132 }
133
134 /**
135 * Sets the default value for Float conversions.
136 * @param newDefaultFloat The default Float value
137 * @deprecated Register replacement converters for Float.TYPE and
138 * Float.class instead
139 */
140 public static void setDefaultFloat(float newDefaultFloat) {
141 ConvertUtilsBean.getInstance().setDefaultFloat(newDefaultFloat);
142 }
143
144
145 /**
146 * Gets the default value for Integer conversions.
147 * @return The default Integer value
148 * @deprecated Register replacement converters for Integer.TYPE and
149 * Integer.class instead
150 */
151 public static int getDefaultInteger() {
152 return ConvertUtilsBean.getInstance().getDefaultInteger();
153 }
154
155 /**
156 * Sets the default value for Integer conversions.
157 * @param newDefaultInteger The default Integer value
158 * @deprecated Register replacement converters for Integer.TYPE and
159 * Integer.class instead
160 */
161 public static void setDefaultInteger(int newDefaultInteger) {
162 ConvertUtilsBean.getInstance().setDefaultInteger(newDefaultInteger);
163 }
164
165
166 /**
167 * Gets the default value for Long conversions.
168 * @return The default Long value
169 * @deprecated Register replacement converters for Long.TYPE and
170 * Long.class instead
171 */
172 public static long getDefaultLong() {
173 return (ConvertUtilsBean.getInstance().getDefaultLong());
174 }
175
176 /**
177 * Sets the default value for Long conversions.
178 * @param newDefaultLong The default Long value
179 * @deprecated Register replacement converters for Long.TYPE and
180 * Long.class instead
181 */
182 public static void setDefaultLong(long newDefaultLong) {
183 ConvertUtilsBean.getInstance().setDefaultLong(newDefaultLong);
184 }
185
186
187 /**
188 * Gets the default value for Short conversions.
189 * @return The default Short value
190 * @deprecated Register replacement converters for Short.TYPE and
191 * Short.class instead
192 */
193 public static short getDefaultShort() {
194 return ConvertUtilsBean.getInstance().getDefaultShort();
195 }
196
197 /**
198 * Sets the default value for Short conversions.
199 * @param newDefaultShort The default Short value
200 * @deprecated Register replacement converters for Short.TYPE and
201 * Short.class instead
202 */
203 public static void setDefaultShort(short newDefaultShort) {
204 ConvertUtilsBean.getInstance().setDefaultShort(newDefaultShort);
205 }
206
207 // --------------------------------------------------------- Public Classes
208
209
210 /**
211 * <p>Convert the specified value into a String.</p>
212 *
213 * <p>For more details see <code>ConvertUtilsBean</code>.</p>
214 *
215 * @param value Value to be converted (may be null)
216 * @return The converted String value
217 *
218 * @see ConvertUtilsBean#convert(Object)
219 */
220 public static String convert(Object value) {
221
222 return ConvertUtilsBean.getInstance().convert(value);
223
224 }
225
226
227 /**
228 * <p>Convert the specified value to an object of the specified class (if
229 * possible). Otherwise, return a String representation of the value.</p>
230 *
231 * <p>For more details see <code>ConvertUtilsBean</code>.</p>
232 *
233 * @param value Value to be converted (may be null)
234 * @param clazz Java class to be converted to
235 * @return The converted value
236 *
237 * @see ConvertUtilsBean#convert(String, Class)
238 */
239 public static Object convert(String value, Class clazz) {
240
241 return ConvertUtilsBean.getInstance().convert(value, clazz);
242
243 }
244
245
246 /**
247 * <p>Convert an array of specified values to an array of objects of the
248 * specified class (if possible).</p>
249 *
250 * <p>For more details see <code>ConvertUtilsBean</code>.</p>
251 *
252 * @param values Array of values to be converted
253 * @param clazz Java array or element class to be converted to
254 * @return The converted value
255 *
256 * @see ConvertUtilsBean#convert(String[], Class)
257 */
258 public static Object convert(String[] values, Class clazz) {
259
260 return ConvertUtilsBean.getInstance().convert(values, clazz);
261
262 }
263
264 /**
265 * <p>Convert the value to an object of the specified class (if
266 * possible).</p>
267 *
268 * @param value Value to be converted (may be null)
269 * @param targetType Class of the value to be converted to
270 * @return The converted value
271 *
272 * @exception ConversionException if thrown by an underlying Converter
273 */
274 public static Object convert(Object value, Class targetType) {
275
276 return ConvertUtilsBean.getInstance().convert(value, targetType);
277
278 }
279
280 /**
281 * <p>Remove all registered {@link Converter}s, and re-establish the
282 * standard Converters.</p>
283 *
284 * <p>For more details see <code>ConvertUtilsBean</code>.</p>
285 *
286 * @see ConvertUtilsBean#deregister()
287 */
288 public static void deregister() {
289
290 ConvertUtilsBean.getInstance().deregister();
291
292 }
293
294
295 /**
296 * <p>Remove any registered {@link Converter} for the specified destination
297 * <code>Class</code>.</p>
298 *
299 * <p>For more details see <code>ConvertUtilsBean</code>.</p>
300 *
301 * @param clazz Class for which to remove a registered Converter
302 * @see ConvertUtilsBean#deregister(Class)
303 */
304 public static void deregister(Class clazz) {
305
306 ConvertUtilsBean.getInstance().deregister(clazz);
307
308 }
309
310
311 /**
312 * <p>Look up and return any registered {@link Converter} for the specified
313 * destination class; if there is no registered Converter, return
314 * <code>null</code>.</p>
315 *
316 * <p>For more details see <code>ConvertUtilsBean</code>.</p>
317 *
318 * @param clazz Class for which to return a registered Converter
319 * @return The registered {@link Converter} or <code>null</code> if not found
320 * @see ConvertUtilsBean#lookup(Class)
321 */
322 public static Converter lookup(Class clazz) {
323
324 return ConvertUtilsBean.getInstance().lookup(clazz);
325
326 }
327
328 /**
329 * Look up and return any registered {@link Converter} for the specified
330 * source and destination class; if there is no registered Converter,
331 * return <code>null</code>.
332 *
333 * @param sourceType Class of the value being converted
334 * @param targetType Class of the value to be converted to
335 * @return The registered {@link Converter} or <code>null</code> if not found
336 */
337 public static Converter lookup(Class sourceType, Class targetType) {
338
339 return ConvertUtilsBean.getInstance().lookup(sourceType, targetType);
340
341 }
342
343 /**
344 * <p>Register a custom {@link Converter} for the specified destination
345 * <code>Class</code>, replacing any previously registered Converter.</p>
346 *
347 * <p>For more details see <code>ConvertUtilsBean</code>.</p>
348 *
349 * @param converter Converter to be registered
350 * @param clazz Destination class for conversions performed by this
351 * Converter
352 * @see ConvertUtilsBean#register(Converter, Class)
353 */
354 public static void register(Converter converter, Class clazz) {
355
356 ConvertUtilsBean.getInstance().register(converter, clazz);
357
358 }
359
360
361 }