    001/*
    002 * Copyright (c) 2009 The openGion Project.
    003 *
    004 * Licensed under the Apache License, Version 2.0 (the "License");
    005 * you may not use this file except in compliance with the License.
    006 * You may obtain a copy of the License at
    007 *
    008 *     http://www.apache.org/licenses/LICENSE-2.0
    009 *
    010 * Unless required by applicable law or agreed to in writing, software
    011 * distributed under the License is distributed on an "AS IS" BASIS,
    012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
    013 * either express or implied. See the License for the specific language
    014 * governing permissions and limitations under the License.
    015 */
    016package org.opengion.hayabusa.db;
    017
    018import java.util.Map;
    019
    020import org.opengion.fukurou.util.ErrorMessage;
    021import org.opengion.fukurou.db.Transaction;
    022import org.opengion.hayabusa.common.HybsSystem;
    023import org.opengion.hayabusa.resource.ResourceManager;
    024
    025/**
    026 * TableFilter は、TableFilterTag で使用される DBTableModelの処理用のインターフェースです。
    027 * 適切な実装(サブクラス)を TableFilterTag に与えることで，DBTableModelの処理を適宜
    028 * 切り替えることが出来ます。
    029 *
    030 * @og.rev 3.8.5.0 (2006/03/20) 新規作成
    031 * @og.rev 5.5.2.6 (2012/05/25) インターフェースにgetterメソッド追加
    032 *
    033 * @version  0.9.0  2000/10/17
    034 * @author   Kazuhiko Hasegawa
    035 * @since    JDK1.1,
    036 */
    037public interface TableFilter {
    038        /** CR 定義 */
    039        String CR = HybsSystem.CR ;             // 5.1.1.0 (2009/12/01) CR 定義をここで行う。
    040
    041        /**
    042         * DBTableModelの処理を実行します。
    043         * 処理自体は, 各サブクラスの実装に依存します。
    044         *
    045         * @return      DBTableModelオブジェクト
    046         */
    047        DBTableModel execute() ;
    048
    049        /**
    050         * DBTableModel をセットします。
    051         *
    052         * @param       table DBTableModelオブジェクト
    053         */
    054        void setDBTableModel( DBTableModel table ) ;
    055
    056        /**
    057         * DBTableModel を取得します。
    058         *
    059         * @og.rev 5.5.2.6 (2012/05/25) インターフェースにgetterメソッド追加
    060         *
    061         * @return      内部のDBTableModel
    062         */
    063        DBTableModel getDBTableModel() ;
    064
    065        /**
    066         * データ処理の方法(A:追加 C:更新 D:削除)を指定します。
    067         *
    068         * 通常は、DBTableModel に自動設定されている modifyType を元に、データ処理方法を
    069         * 選別します。(A:追加 C:更新 D:削除)
    070         * この場合、行単位で modifyType の値を取得して判別する必要がありますが、一般には
    071         * 処理対象は、全件おなじ modifyType である可能性が高いです。
    072         * また、selectedAll などで強制的に全件処理対象とする場合は、modifyType に値が
    073         * 設定さていません。その様な場合に外部より modifyType を指定します。
    074         * 初期値は、自動判定 です。
    075         *
    076         * @param  type データ処理の方法(A:追加 C:更新 D:削除)
    077         */
    078        void setModifyType( String type ) ;
    079
    080        /**
    081         * データ処理の方法(A:追加 C:更新 D:削除)を取得します。
    082         *
    083         * 初期値は、自動判定 です。
    084         *
    085         * @og.rev 5.5.2.6 (2012/05/25) インターフェースにgetterメソッド追加
    086         *
    087         * @return  データ処理の方法(A:追加 C:更新 D:削除)
    088         */
    089        String getModifyType() ;
    090
    091        /**
    092         * キーと値のペアの変数配列を受け取ります。
    093         *
    094         * ここでは、この方式以外に、パラメーターMapを受け取る方法もあります。
    095         *
    096         * keys,vals とパラメーターMapを同時に指定した場合は、両方とも有効です。
    097         * ただし、キーが重複した場合は、不定と考えてください。
    098         *
    099         * @param   keys キー配列
    100         * @param   vals 値配列
    101         */
    102        void setKeysVals( String[] keys,String[] vals ) ;
    103
    104        /**
    105         * 選択された行番号の配列をセットします。
    106         *
    107         * 表示データの HybsSystem.ROW_SEL_KEY を元に、選ばれた 行を
    108         * 処理の対象とします。
    109         *
    110         * @param   rowNo 行番号の配列
    111         */
    112        void setParameterRows( int[] rowNo ) ;
    113
    114        /**
    115         * 選択された行番号の配列を取得します。
    116         *
    117         * 表示データの HybsSystem.ROW_SEL_KEY を元に、選ばれた 行を
    118         * 処理の対象とします。
    119         *
    120         * @og.rev 5.5.2.6 (2012/05/25) インターフェースにgetterメソッド追加
    121         *
    122         * @return  行番号の配列
    123         */
    124        int[] getParameterRows() ;
    125
    126        /**
    127         * アクセスログ取得の為,Transactionオブジェクトを設定します。
    128         *
    129         * @og.rev 5.1.9.0 (2010/08/01) Transaction 対応(新規追加)
    130         *
    131         * @param   tran Transactionオブジェクト
    132         */
    133        void setTransaction( Transaction tran ) ;
    134
    135        /**
    136         * アクセスログ取得の為,Transactionオブジェクトを取得します。
    137         *
    138         * @og.rev 5.1.9.0 (2010/08/01) Transaction 対応(新規追加)
    139         * @og.rev 5.5.2.6 (2012/05/25) インターフェースにgetterメソッド追加
    140         *
    141         * @return      Transactionオブジェクト
    142         */
    143        Transaction getTransaction() ;
    144
    145        /**
    146         * DBIDを指定します。
    147         *
    148         * @og.rev 4.2.4.0 (2008/06/23) 新規追加
    149         *
    150         * @param dbid 接続先ID
    151         */
    152        void setDbid( String dbid ) ;
    153
    154        /**
    155         * DBIDを取得します。
    156         *
    157         * @og.rev 4.2.4.0 (2008/06/23) 新規追加
    158         * @og.rev 5.5.2.6 (2012/05/25) インターフェースにgetterメソッド追加
    159         *
    160         * @return DBID(接続先ID)
    161         */
    162        String getDbid() ;
    163
    164        /**
    165         * ボディー部分のSQLを指定します。
    166         *
    167         * @og.rev 4.2.4.0 (2008/06/23) 新規追加
    168         *
    169         * @param sql ボディー部分のSQL
    170         */
    171        void setSql( String sql ) ;
    172
    173        /**
    174         * ボディー部分のSQLを取得します。
    175         *
    176         * @og.rev 4.2.4.0 (2008/06/23) 新規追加
    177         * @og.rev 5.5.2.6 (2012/05/25) インターフェースにgetterメソッド追加
    178         *
    179         * @return ボディー部分のSQL
    180         */
    181        String getSql() ;
    182
    183        /**
    184         * パラメーターMapを指定します。
    185         *
    186         * keys,vals と パラメーターMapを同時に指定した場合は、両方とも有効です。
    187         * ただし、キーが重複した場合は、不定と考えてください。
    188         *
    189         * @og.rev  5.6.5.2 (2013/06/21) 新規追加
    190         *
    191         * @param paramMap パラメーターMap
    192         */
    193        void setParamMap( Map<String,String> paramMap ) ;
    194
    195        /**
    196         * リソースオブジェクトを指定します。
    197         *
    198         * @og.rev 4.3.7.4 (2009/07/01) 新規追加
    199         *
    200         * @param resource リソースオブジェクト
    201         */
    202        void setResource( ResourceManager resource ) ;
    203
    204        /**
    205         * リソースオブジェクトを取得します。
    206         *
    207         * @og.rev 4.3.7.4 (2009/07/01) 新規追加
    208         * @og.rev 5.5.2.6 (2012/05/25) インターフェースにgetterメソッド追加
    209         *
    210         * @return リソースオブジェクト
    211         */
    212        ResourceManager getResource() ;
    213
    214        /**
    215         * デバッグ情報を表示するかどうか[true/false]を指定します。
    216         * true でデバッグ情報を表示します。
    217         *
    218         * @param   flag 表示するかどうか[true:表示する/false:表示しない]
    219         */
    220        void setDebug( boolean flag ) ;
    221
    222        /**
    223         * デバッグ情報を表示するかどうか[true/false]を取得します。
    224         * true でデバッグ情報を表示します。
    225         *
    226         * @og.rev 5.5.2.6 (2012/05/25) インターフェースにgetterメソッド追加
    227         *
    228         * @return  デバッグ情報[true:表示する/false:表示しない]
    229         */
    230        boolean isDebug() ;
    231
    232        /**
    233         * エラーコード を取得します。
    234         * エラーコード は、ErrorMessage クラスで規定されているコードです。
    235         *
    236         * @return   エラーコード
    237         */
    238        int getErrorCode() ;
    239
    240        /**
    241         * エラーメッセージオブジェクト を取得します。
    242         *
    243         * @return   エラーメッセージオブジェクト
    244         */
    245        ErrorMessage getErrorMessage() ;
    246}