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 }