⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 convertersmanager.java

📁 Jodd是一个开源的公用Java基础类库
💻 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 + -