package nebula.data.db.serializer; import java.sql.PreparedStatement; import java.sql.ResultSet; import nebula.data.Entity; import nebula.lang.RawTypes; public class SystemTypeFieldSerializer extends DefaultFieldSerializer<Object> { protected final BasicTypeAdapter<?> dataDealer; public SystemTypeFieldSerializer(String fieldName, String columnName, boolean array, RawTypes rawType) { super(fieldName, columnName); if (array) dataDealer = ListTypeAdapter.getAdapter(rawType); else dataDealer = BasicTypeAdapter.getAdapter(rawType); } @Override public int input(ResultSet in, int pos, Entity parent, Object now) throws Exception { Object newly = dataDealer.readFrom(in, pos); parent.put(fieldName, newly); return ++pos; } @Override public int inputWithoutCheck(ResultSet in, int pos, Entity parent) throws Exception { Object newly = dataDealer.readFrom(in, pos); parent.put(fieldName, newly); return ++pos; } @Override public int output(PreparedStatement out, Object value, int pos) throws Exception { // dataDealer.writeTo(pos, value, out); return pos; } }