1 package com.imcode.db.handlers; 2 3 import org.apache.commons.dbutils.ResultSetHandler; 4 5 import java.lang.reflect.Array; 6 import java.sql.ResultSet; 7 import java.sql.SQLException; 8 import java.util.ArrayList; 9 import java.util.List; 10 11 public class ObjectArrayResultSetHandler implements ResultSetHandler { 12 13 private ObjectFromRowFactory objectFromRowFactory ; 14 15 public ObjectArrayResultSetHandler(ObjectFromRowFactory objectFromRowFactory) { 16 this.objectFromRowFactory = objectFromRowFactory; 17 } 18 19 public Object handle(ResultSet resultSet) throws SQLException { 20 List result = new ArrayList(); 21 while ( resultSet.next() ) { 22 result.add(objectFromRowFactory.createObjectFromResultSetRow(resultSet)); 23 } 24 Class resultArrayType = objectFromRowFactory.getClassOfCreatedObjects(); 25 return result.toArray((Object[]) Array.newInstance(resultArrayType, result.size())); 26 } 27 }