OSDN Git Service

DBFlute-0.9.3に更新
[ea2ddl/ea2ddl.git] / ea2ddl-dao / src / main / java / jp / sourceforge / ea2ddl / dao / allcommon / s2dao / FetchNarrowingResultSetFactory.java
1 package jp.sourceforge.ea2ddl.dao.allcommon.s2dao;\r
2 \r
3 import java.sql.Statement;\r
4 import java.sql.PreparedStatement;\r
5 import java.sql.ResultSet;\r
6 import java.sql.SQLException;\r
7 \r
8 import org.seasar.extension.jdbc.ResultSetFactory;\r
9 \r
10 // import jp.sourceforge.ea2ddl.dao.allcommon.cbean.FetchNarrowingBean;\r
11 // import jp.sourceforge.ea2ddl.dao.allcommon.cbean.FetchNarrowingBeanContext;\r
12 // import jp.sourceforge.ea2ddl.dao.allcommon.cbean.outsidesql.OutsideSqlContext;\r
13 import jp.sourceforge.ea2ddl.dao.allcommon.s2dao.internal.sqlhandler.InternalBasicHandler.SQLExceptionHandler;\r
14 \r
15 /**\r
16  * This is unused in DBFlute so this is very NORMAL result-set-factory for S2Dao.\r
17  * @author DBFlute(AutoGenerator)\r
18  */\r
19 public class FetchNarrowingResultSetFactory implements ResultSetFactory {\r
20 \r
21     // ===================================================================================\r
22     //                                                                         Constructor\r
23     //                                                                         ===========\r
24     /**\r
25      * Constructor.\r
26      */\r
27     public FetchNarrowingResultSetFactory() {\r
28     }\r
29 \r
30     // ===================================================================================\r
31     //                                                                                Main\r
32     //                                                                                ====\r
33     /**\r
34      * Get result set.\r
35      * @param statement Statement. (NotNull)\r
36      * @return Result set for procedure executing of s2dao. (NotNull)\r
37      */\r
38     public ResultSet getResultSet(Statement statement) { // Unused in DBFlute\r
39         return doGetResultSet(statement);\r
40     }\r
41 \r
42     /**\r
43      * Create result set.\r
44      * @param ps Prepared statement. (NotNull)\r
45      * @return Result set. (NotNull)\r
46      */\r
47     public ResultSet createResultSet(PreparedStatement ps) { // Unused in DBFlute\r
48         return executeQuery(ps);\r
49 \r
50         // *Move to InternalBasicSelectHandler \r
51         // if (!FetchNarrowingBeanContext.isExistFetchNarrowingBeanOnThread()) {\r
52         //     return resultSet;\r
53         // }\r
54         // final FetchNarrowingBean cb = FetchNarrowingBeanContext.getFetchNarrowingBeanOnThread();\r
55         // if (!isUseFetchNarrowingResultSetWrapper(cb)) {\r
56         //     return resultSet;\r
57         // }\r
58         // final FetchNarrowingResultSetWrapper wrapper;\r
59         // if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) {\r
60         //     final OutsideSqlContext outsideSqlContext = OutsideSqlContext.getOutsideSqlContextOnThread();\r
61         //     wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, outsideSqlContext.isOffsetByCursorForcedly(), outsideSqlContext.isLimitByCursorForcedly());\r
62         // } else {\r
63         //     wrapper = new FetchNarrowingResultSetWrapper(resultSet, cb, false, false);\r
64         // }\r
65         // return wrapper;\r
66     }\r
67 \r
68     // protected boolean isUseFetchNarrowingResultSetWrapper(FetchNarrowingBean cb) {\r
69     //     if (cb.getSafetyMaxResultSize() > 0) {\r
70     //         return true;\r
71     //     }\r
72     //     if (!cb.isFetchNarrowingEffective()) {\r
73     //         return false;// It is not necessary to control.\r
74     //     }\r
75     //     if (OutsideSqlContext.isExistOutsideSqlContextOnThread()) {\r
76     //         final OutsideSqlContext outsideSqlContext = OutsideSqlContext.getOutsideSqlContextOnThread();\r
77     //         if (outsideSqlContext.isOffsetByCursorForcedly() || outsideSqlContext.isLimitByCursorForcedly()) {\r
78     //             return true;\r
79     //         }\r
80     //     }\r
81     //     if (cb.isFetchNarrowingSkipStartIndexEffective() || cb.isFetchNarrowingLoopCountEffective()) {\r
82     //         return true;\r
83     //     }\r
84     //     return false;\r
85     // }\r
86 \r
87     // ===================================================================================\r
88     //                                                                      JDBC Delegator\r
89     //                                                                      ==============\r
90     protected ResultSet doGetResultSet(Statement statement)  {\r
91         try {\r
92             return statement.getResultSet();\r
93         } catch (SQLException e) {\r
94             handleSQLException(e, statement);\r
95             return null;// Unreachable!\r
96         }\r
97     }\r
98 \r
99     protected ResultSet executeQuery(PreparedStatement ps) {\r
100         try {\r
101             return ps.executeQuery();\r
102         } catch (SQLException e) {\r
103             handleSQLException(e, ps);\r
104             return null;// Unreachable!\r
105         }\r
106     }\r
107 \r
108     protected void handleSQLException(SQLException e, Statement statement) {\r
109         new SQLExceptionHandler().handleSQLException(e, statement);\r
110     }\r
111 }\r