1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.dbutils.handlers;
18
19 import java.sql.ResultSet;
20 import java.sql.SQLException;
21 import java.util.ArrayList;
22 import java.util.List;
23
24 import org.apache.commons.dbutils.ResultSetHandler;
25
26 /**
27 * Abstract class that simplify development of <code>ResultSetHandler</code>
28 * classes that convert <code>ResultSet</code> into <code>List</code>.
29 *
30 * @see org.apache.commons.dbutils.ResultSetHandler
31 */
32 abstract class GenericListHandler implements ResultSetHandler {
33 /**
34 * Whole <code>ResultSet</code> handler. It produce <code>List</code> as
35 * result. To convert individual rows into Java objects it uses
36 * <code>handleRow(ResultSet)</code> method.
37 *
38 * @see #handleRow(ResultSet)
39 */
40 public Object handle(ResultSet rs) throws SQLException {
41 List rows = new ArrayList();
42 while (rs.next()) {
43 rows.add(this.handleRow(rs));
44 }
45 return rows;
46 }
47
48 /**
49 * Row handler. Method converts current row into some Java object.
50 *
51 * @param rs <code>ResultSet</code> to process.
52 * @return row processing result
53 * @throws SQLException error occurs
54 */
55 protected abstract Object handleRow(ResultSet rs) throws SQLException;
56 }