package se.unlogic.standardutils.dao;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.sql.Blob;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.LinkedHashMap;
import se.unlogic.standardutils.populators.TypePopulator;
public class ResultSetField {
public static final LinkedHashMap<Class<?>,Method> RESULTSET_METHODS = new LinkedHashMap<Class<?>, Method>();
static{
try {
RESULTSET_METHODS.put(String.class, ResultSet.class.getMethod("getString", String.class));
RESULTSET_METHODS.put(Timestamp.class, ResultSet.class.getMethod("getTimestamp", String.class));
RESULTSET_METHODS.put(Blob.class, ResultSet.class.getMethod("getBlob", String.class));
RESULTSET_METHODS.put(Date.class, ResultSet.class.getMethod("getDate", String.class));
RESULTSET_METHODS.put(Boolean.class, ResultSet.class.getMethod("getBoolean", String.class));
RESULTSET_METHODS.put(boolean.class, ResultSet.class.getMethod("getBoolean", String.class));
RESULTSET_METHODS.put(Integer.class, ResultSet.class.getMethod("getInt", String.class));
RESULTSET_METHODS.put(int.class, ResultSet.class.getMethod("getInt", String.class));
RESULTSET_METHODS.put(Long.class, ResultSet.class.getMethod("getLong", String.class));
RESULTSET_METHODS.put(long.class, ResultSet.class.getMethod("getLong", String.class));
RESULTSET_METHODS.put(Float.class, ResultSet.class.getMethod("getFloat", String.class));
RESULTSET_METHODS.put(float.class, ResultSet.class.getMethod("getFloat", String.class));
RESULTSET_METHODS.put(Double.class, ResultSet.class.getMethod("getDouble", String.class));
RESULTSET_METHODS.put(Double.class, ResultSet.class.getMethod("getDouble", String.class));
} catch (SecurityException e) {
throw new RuntimeException(e);
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
private final Field beanField;
private final Method resultSetMethod;
private final TypePopulator<?> typePopulator;
private final String alias;
public ResultSetField(Field beanField, Method resultSetMethod, String alias , TypePopulator<?> typePopulator) {
super();
this.beanField = beanField;
this.resultSetMethod = resultSetMethod;
this.alias = alias;
this.typePopulator = typePopulator;
}
public TypePopulator<?> getTypePopulator() {
return typePopulator;
}
public Field getBeanField() {
return beanField;
}
public Method getResultSetMethod() {
return resultSetMethod;
}
public String getAlias() {
return alias;
}
}