public <T> T handle(ResultSet resultSet, Class<T> resultType)
throws SQLException {
if (resultType == List.class) {
IsoLog log = context.getInstance(IsoLog.class);
IsoReflectionManager reflectionManager = context
.getInstance(IsoReflectionManager.class);
IsoBeanPropertyManager propertyManager = context
.getInstance(IsoBeanPropertyManager.class);
IsoColumnTypeConverter columnTypeConverter = context
.getInstance(IsoColumnTypeConverter.class);
log.debug("Processing: {0}", klass);
List<Object> list = new ArrayList<Object>();
ResultSetMetaData metaData = resultSet.getMetaData();
int columnCount = metaData.getColumnCount();
String[] columnNames = new String[columnCount];
for (int i = 0; i < columnCount; i++) {
String columnName = metaData.getColumnName(i + 1);
columnNames[i] = columnName;
log.trace("Catch of column: {0}", columnName);
}
while (resultSet.next()) {
Object bean = reflectionManager.newInstance(klass);
for (int i = 0; i < columnCount; i++) {
String columnName = columnNames[i];
IsoSQLResultSetProcessorColumnInfo columnInfo = columnsInfo
.get(columnName);
Object value;