package com.geccocrawler.gecco.spider.conversion;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class Conversion {
@SuppressWarnings({ "rawtypes" })
private static final Map<Class<?>, TypeHandle> TYPE_HANDLERS = new HashMap<Class<?>, TypeHandle>();
static {
// int, float, long, double, java.util.Date, boolean, String
TYPE_HANDLERS.put(Integer.class, new IntegerTypeHandle());
TYPE_HANDLERS.put(int.class, new IntegerTypeHandle());
TYPE_HANDLERS.put(Long.class, new LongTypeHandle());
TYPE_HANDLERS.put(long.class, new LongTypeHandle());
TYPE_HANDLERS.put(Float.class, new FloatTypeHandle());
TYPE_HANDLERS.put(float.class, new FloatTypeHandle());
TYPE_HANDLERS.put(Double.class, new DoubleTypeHandle());
TYPE_HANDLERS.put(double.class, new DoubleTypeHandle());
TYPE_HANDLERS.put(Boolean.class, new BooleanTypeHandle());
TYPE_HANDLERS.put(boolean.class, new BooleanTypeHandle());
TYPE_HANDLERS.put(Date.class, new DateTypeHandle());
}
@SuppressWarnings({ "rawtypes" })
public static void register(Class<?> type, TypeHandle typeHandle) {
TYPE_HANDLERS.put(type, typeHandle);
}
public static void unregister(Class<?> type) {
TYPE_HANDLERS.remove(type);
}
@SuppressWarnings({ "rawtypes" })
public static Object getValue(Class<?> type, Object value) throws Exception {
TypeHandle th = TYPE_HANDLERS.get(type);
if (th != null && value != null) {
return th.getValue(value);
}
return value;
}
public static Object getDateValue(Object value, String format) throws Exception {
DateTypeHandle th = (DateTypeHandle) TYPE_HANDLERS.get(Date.class);
return th.getValue(value, format);
}
}