    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 07:11:19 +0100 (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    }