/*
 * Copyright 2015 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
 * either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */
package jp.fieldnotes.hatunatu.dao.pager;

import jp.fieldnotes.hatunatu.dao.jdbc.QueryObject;

import java.sql.SQLException;

public interface PagingSqlRewriter {

    /**
     * 指定されたSQL文を書き換え、 ページング処理が含まれたSQLを返します。
     * 
     */
    void rewrite(QueryObject queryObject) throws Exception;

    /**
     * 元のSQLによる結果総件数を設定します
     * 
     * @param baseSQL
     *            元のSQL
     * @param args
     *            メソッド引数
     * @param bindVariables
     *            対象のSQLにバインドされる予定の値
     * @param bindVariableTypes
     *            対象のSQLにバインドされる予定の値の型
     * @throws SQLException
     *             SQLExceptionが発生した場合
     */
    void setCount(QueryObject queryObject) throws Exception;


}

@@ -708,39 +708,8 @@
 t;%0A%0A
-import java.sql.SQLException;%0A%0A
 publ
@@ -761,53 +761,175 @@
   * 
-%E6%8C%87%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%9FSQL%E6%96%87%E3%82%92%E6%9B%B8%E3%81%8D%E6%8F%9B%E3%81%88%E3%80%81 %E3%83%9A%E3%83%BC%E3%82%B8%E3%83%B3%E3%82%B0%E5%87%A6%E7%90%86%E3%81%8C%E5%90%AB%E3%81%BE%E3%82%8C%E3%81%9FSQL%E3%82%92%E8%BF%94%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%0A     * 
+Rewrites a SQL statement and returns SQL containing paging processing.%0A     *%0A     * @param queryObject a Query Object%0A     * @throws Exception If Exception has thrown
 %0A   
@@ -1013,261 +1013,103 @@
   * 
-%E5%85%83%E3%81%AESQL%E3%81%AB%E3%82%88%E3%82%8B%E7%B5%90%E6%9E%9C%E7%B7%8F%E4%BB%B6%E6%95%B0%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%BE%E3%81%99%0A     * %0A     * @param baseSQL%0A     *            %E5%85%83%E3%81%AE
+Set the total number of result by original 
 SQL
+.
 %0A     *
- @param args%0A     *            %E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E5%BC%95%E6%95%B0%0A     * @param bindVariables%0A     *            %E5%AF%BE%E8%B1%A1%E3%81%AESQL%E3%81%AB%E3%83%90%E3%82%A4%E3%83%B3%E3%83%89%E3%81%95%E3%82%8C%E3%82%8B%E4%BA%88%E5%AE%9A%E3%81%AE%E5%80%A4%0A     * @param bindVariableTypes%0A     *            %E5%AF%BE%E8%B1%A1%E3%81%AESQL%E3%81%AB%E3%83%90%E3%82%A4%E3%83%B3%E3%83%89%E3%81%95%E3%82%8C%E3%82%8B%E4%BA%88%E5%AE%9A%E3%81%AE%E5%80%A4%E3%81%AE%E5%9E%8B
+%0A     * @param queryObject a Query Object
 %0A   
@@ -1120,19 +1120,16 @@
 @throws 
-SQL
 Exceptio
@@ -1133,47 +1133,32 @@
 tion
-%0A     *             SQLException%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%9F%E5%A0%B4%E5%90%88
+ If Exception has thrown
 %0A   

Rewrite a javadoc.