📄 convertersmanager.java
字号:
package jodd.bean;
import java.util.HashMap;
import jodd.bean.converters.BigDecimalConverter;
import jodd.bean.converters.BigIntegerConverter;
import jodd.bean.converters.BooleanConverter;
import jodd.bean.converters.ByteConverter;
import jodd.bean.converters.CharacterConverter;
import jodd.bean.converters.DoubleConverter;
import jodd.bean.converters.FloatConverter;
import jodd.bean.converters.IntegerConverter;
import jodd.bean.converters.LongConverter;
import jodd.bean.converters.SqlDateConverter;
import jodd.bean.converters.SqlTimeConverter;
import jodd.bean.converters.SqlTimestampConverter;
import jodd.bean.converters.StringArrayConverter;
import jodd.bean.converters.StringConverter;
import jodd.bean.converters.UploadedFileConverter;
/**
* Objects converters manager, register default converters and add new ones.
* It is used by BeanUtil methods, but it can be used independently.
*
* @see BeanUtil
*/
public class ConvertersManager {
// ---------------------------------------------------------------- manager
private static HashMap convmap = new HashMap();
static {
registerDefaults();
}
/**
* Re-initialize all Converters: loads default ones.
*/
public static void registerDefaults() {
convmap.clear();
register(String.class, new StringConverter());
register(String[].class, new StringArrayConverter());
register(Integer.class, new IntegerConverter());
register(int.class, new IntegerConverter());
register(Long.class, new LongConverter());
register(long.class, new LongConverter());
register(Byte.class, new ByteConverter());
register(byte.class, new ByteConverter());
register(Boolean.class, new BooleanConverter());
register(boolean.class, new BooleanConverter());
register(java.math.BigDecimal.class, new BigDecimalConverter());
register(java.math.BigInteger.class, new BigIntegerConverter());
register(Float.class, new FloatConverter());
register(float.class, new FloatConverter());
register(Double.class, new DoubleConverter());
register(double.class, new DoubleConverter());
register(Character.class, new CharacterConverter());
register(char.class, new CharacterConverter());
register(java.sql.Date.class, new SqlDateConverter());
register(java.sql.Time.class, new SqlTimeConverter());
register(java.sql.Timestamp.class, new SqlTimestampConverter());
register(jodd.servlet.UploadedFile.class, new UploadedFileConverter());
}
/**
* Register single converter.
*
* @param key class that converter is for
* @param conv converter object
*/
public static void register(Class key, Converter conv) {
convmap.put(key, conv);
}
/**
* Retrieves one of the registered converters
*
* @param key class that converter is searched for
*
* @return founded converter, or <code>null</code>
*/
public static Converter get(Class key) {
return (Converter) convmap.get(key);
}
// ---------------------------------------------------------------- convert
/**
* Convertes one object into another.
*
* @param value object to convert from
* @param c class of object to convert to
*
* @return converted object
* @exception IllegalArgumentException
*/
public static Object convert(Object value, Class c) throws IllegalArgumentException {
Converter conv = (Converter) convmap.get(c);
if (conv == null) {
throw new IllegalArgumentException("No registered converter for " + c.getName());
}
Object result = null;
try {
result = conv.convert(value);
} catch (IllegalArgumentException iaex) {
throw iaex;
}
return result;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -