📄 localeconvertutilsbean.java
字号:
/* * Copyright 2001-2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.commons.beanutils.locale;import org.apache.commons.beanutils.locale.converters.*;import org.apache.commons.beanutils.Converter;import org.apache.commons.collections.FastHashMap;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import java.lang.reflect.Array;import java.math.BigDecimal;import java.math.BigInteger;import java.sql.Date;import java.sql.Time;import java.sql.Timestamp;import java.util.Locale;/** * <p>Utility methods for converting locale-sensitive String scalar values to objects of the * specified Class, String arrays to arrays of the specified Class and * object to locale-sensitive String scalar value.</p> * * <p>This class provides the implementations used by the static utility methods in * {@link LocaleConvertUtils}.</p> * * <p>The actual {@link LocaleConverter} instance to be used * can be registered for each possible destination Class. Unless you override them, standard * {@link LocaleConverter} instances are provided for all of the following * destination Classes:</p> * <ul> * <li>java.lang.BigDecimal</li> * <li>java.lang.BigInteger</li> * <li>byte and java.lang.Byte</li> * <li>double and java.lang.Double</li> * <li>float and java.lang.Float</li> * <li>int and java.lang.Integer</li> * <li>long and java.lang.Long</li> * <li>short and java.lang.Short</li> * <li>java.lang.String</li> * <li>java.sql.Date</li> * <li>java.sql.Time</li> * <li>java.sql.Timestamp</li> * </ul> * * <p>For backwards compatibility, the standard locale converters * for primitive types (and the corresponding wrapper classes). * * If you prefer to have another {@link LocaleConverter} * thrown instead, replace the standard {@link LocaleConverter} instances * with ones created with the one of the appropriate constructors. * * It's important that {@link LocaleConverter} should be registered for * the specified locale and Class (or primitive type). * * @author Yauheny Mikulski * @since 1.7 */public class LocaleConvertUtilsBean { /** * Gets singleton instance. * This is the same as the instance used by the default {@link LocaleBeanUtilsBean} singleton. */ public static LocaleConvertUtilsBean getInstance() { return LocaleBeanUtilsBean.getLocaleBeanUtilsInstance().getLocaleConvertUtils(); } // ----------------------------------------------------- Instance Variables /** The locale - default for convertion. */ private Locale defaultLocale = Locale.getDefault(); /** Indicate whether the pattern is localized or not */ private boolean applyLocalized = false; /** The <code>Log</code> instance for this class. */ private Log log = LogFactory.getLog(LocaleConvertUtils.class); /** Every entry of the mapConverters is: * key = locale * value = FastHashMap of converters for the certain locale. */ private FastHashMap mapConverters = new FastHashMap(); // --------------------------------------------------------- Constructors /** * Makes the state by default (deregisters all converters for all locales) * and then registers default locale converters. */ public LocaleConvertUtilsBean() { deregister(); } // --------------------------------------------------------- Properties /** * getter for defaultLocale */ public Locale getDefaultLocale() { return defaultLocale; } /** * setter for defaultLocale */ public void setDefaultLocale(Locale locale) { if (locale == null) { defaultLocale = Locale.getDefault(); } else { defaultLocale = locale; } } /** * getter for applyLocalized */ public boolean getApplyLocalized() { return applyLocalized; } /** * setter for applyLocalized */ public void setApplyLocalized(boolean newApplyLocalized) { applyLocalized = newApplyLocalized; } // --------------------------------------------------------- Methods /** * Convert the specified locale-sensitive value into a String. * * @param value The Value to be converted * * @exception org.apache.commons.beanutils.ConversionException if thrown by an underlying Converter */ public String convert(Object value) { return convert(value, defaultLocale, null); } /** * Convert the specified locale-sensitive value into a String * using the convertion pattern. * * @param value The Value to be converted * @param pattern The convertion pattern * * @exception ConversionException if thrown by an underlying Converter */ public String convert(Object value, String pattern) { return convert(value, defaultLocale, pattern); } /** * Convert the specified locale-sensitive value into a String * using the paticular convertion pattern. * * @param value The Value to be converted * @param locale The locale * @param pattern The convertion pattern * * @exception ConversionException if thrown by an underlying Converter */ public String convert(Object value, Locale locale, String pattern) { LocaleConverter converter = lookup(String.class, locale); return (String) converter.convert(String.class, value, pattern); } /** * Convert the specified value to an object of the specified class (if * possible). Otherwise, return a String representation of the value. * * @param value The String scalar value to be converted * @param clazz The Data type to which this value should be converted. * * @exception ConversionException if thrown by an underlying Converter */ public Object convert(String value, Class clazz) { return convert(value, clazz, defaultLocale, null); } /** * Convert the specified value to an object of the specified class (if * possible) using the convertion pattern. Otherwise, return a String * representation of the value. * * @param value The String scalar value to be converted * @param clazz The Data type to which this value should be converted. * @param pattern The convertion pattern * * @exception ConversionException if thrown by an underlying Converter */ public Object convert(String value, Class clazz, String pattern) { return convert(value, clazz, defaultLocale, pattern); } /** * Convert the specified value to an object of the specified class (if * possible) using the convertion pattern. Otherwise, return a String * representation of the value. * * @param value The String scalar value to be converted * @param clazz The Data type to which this value should be converted. * @param locale The locale * @param pattern The convertion pattern *
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -