1 /***
2 * License Agreement.
3 *
4 * JSPA (POJO-SP)
5 *
6 * Copyright (C) 2009 HRX Pty Ltd
7 *
8 * This file is part of JSPA.
9 *
10 * JSPA is free software: you can redistribute it and/or modify it under the
11 * terms of the GNU Lesser General Public License version 3 as published by the
12 * Free Software Foundation.
13 *
14 * JSPA is distributed in the hope that it will be useful, but WITHOUT ANY
15 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
16 * A PARTICULAR PURPOSE. See the Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public License
19 * along with JSPA. If not, see <http://www.gnu.org/licenses/>.
20 */
21 package com.hrx.rasp.util.dao;
22
23 import java.sql.ResultSet;
24 import java.sql.SQLException;
25 import java.util.List;
26
27 import com.hrx.rasp.util.dao.exception.StoredProcedureProccessResultException;
28
29 /***
30 * @author dan.stoica <dan.stoica@acslink.net.au>
31 *
32 * The CursorResultBuilder is responsible to process the OracleTypes.CURSOR
33 * Results. The implementation is not responsible to close the ResultSet at the
34 * end of the execution. The Result set will be closed by the caller of this
35 * builder if this implementation wasn't.
36 * <p>
37 * The implementation of this interface must provide a no arguments Constructor.
38 * During the Stored Procedures result processing, the CURSOR parameters will be
39 * converted to a Collection of Java objects using the public or protected
40 * no-arg constructor of the class. A no-arg constructor must be accessible to
41 * the DAO Response Processor.
42 * </p>
43 *
44 */
45 public interface ResultSetProcessor<E>
46 {
47 /***
48 * Transforms the JDBC CURSOR into a Collection of Java objects
49 *
50 * @param rs
51 * The database CURSOR returned by the Stored Procedure
52 *
53 * @param resultClass
54 * @param resultClassArgsTypes
55 * @return A collection of Java objects representing the CURSOR records
56 *
57 * @throws SQLException
58 * @throws StoredProcedureProccessResultException
59 *
60 */
61 public List<E> create(ResultSet rs, Class<E> resultClass, boolean isSecret) throws SQLException, StoredProcedureProccessResultException;
62
63 /***
64 * @return The maximum number of results to retrieve from result set.
65 *
66 */
67 public int getMaxResult();
68
69 /***
70 * @param maxResult
71 * Set the maximum number of results to retrieve from result set.
72 */
73 public void setMaxResult(int maxResult);
74
75 /***
76 * The start position of the first result, numbered from 0 for ResutlSet
77 * parameters.
78 */
79 public int getStartPosition();
80
81 /***
82 * @param startPosition
83 * The start position of the first result, numbered from 0 for
84 * ResutlSet parameters
85 *
86 */
87 public void setStartPosition(int startPosition);
88
89 }