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