    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        public static final 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         * アクセスログ取得の為,ApplicationInfoオブジェクトを設定します。
    128         *
    129         * @og.rev 3.8.7.0 (2006/12/15) 新規追加
    130         * @og.rev 5.1.9.0 (2010/08/01) Transaction 対応 のため、廃止
    131         *
    132         * @param   appInfo ApplicationInfo
    133         */
    134//      void setApplicationInfo( ApplicationInfo appInfo ) ;
    135
    136        /**
    137         * アクセスログ取得の為,Transactionオブジェクトを設定します。
    138         *
    139         * @og.rev 5.1.9.0 (2010/08/01) Transaction 対応(新規追加)
    140         *
    141         * @param   tran Transactionオブジェクト
    142         */
    143        void setTransaction( Transaction tran ) ;
    144
    145        /**
    146         * アクセスログ取得の為,Transactionオブジェクトを取得します。
    147         *
    148         * @og.rev 5.1.9.0 (2010/08/01) Transaction 対応(新規追加)
    149         * @og.rev 5.5.2.6 (2012/05/25) インターフェースにgetterメソッド追加
    150         *
    151         * @return      Transactionオブジェクト
    152         */
    153        Transaction getTransaction() ;
    154
    155        /**
    156         * DBIDを指定します。
    157         *
    158         * @og.rev 4.2.4.0 (2008/06/23) 新規追加
    159         *
    160         * @param dbid 接続先ID
    161         */
    162        void setDbid( String dbid ) ;
    163
    164        /**
    165         * DBIDを取得します。
    166         *
    167         * @og.rev 4.2.4.0 (2008/06/23) 新規追加
    168         * @og.rev 5.5.2.6 (2012/05/25) インターフェースにgetterメソッド追加
    169         *
    170         * @return DBID(接続先ID)
    171         */
    172        String getDbid() ;
    173
    174        /**
    175         * ボディー部分のSQLを指定します。
    176         *
    177         * @og.rev 4.2.4.0 (2008/06/23) 新規追加
    178         *
    179         * @param sql ボディー部分のSQL
    180         */
    181        void setSql( String sql ) ;
    182
    183        /**
    184         * ボディー部分のSQLを取得します。
    185         *
    186         * @og.rev 4.2.4.0 (2008/06/23) 新規追加
    187         * @og.rev 5.5.2.6 (2012/05/25) インターフェースにgetterメソッド追加
    188         *
    189         * @return ボディー部分のSQL
    190         */
    191        String getSql() ;
    192
    193        /**
    194         * パラメーターMapを指定します。
    195         *
    196         * keys,vals と パラメーターMapを同時に指定した場合は、両方とも有効です。
    197         * ただし、キーが重複した場合は、不定と考えてください。
    198         *
    199         * @og.rev  5.6.5.2 (2013/06/21) 新規追加
    200         *
    201         * @param paramMap パラメーターMap
    202         */
    203        void setParamMap( Map<String,String> paramMap ) ;
    204
    205        /**
    206         * リソースオブジェクトを指定します。
    207         *
    208         * @og.rev 4.3.7.4 (2009/07/01) 新規追加
    209         *
    210         * @param resource リソースオブジェクト
    211         */
    212        void setResource( ResourceManager resource ) ;
    213
    214        /**
    215         * リソースオブジェクトを取得します。
    216         *
    217         * @og.rev 4.3.7.4 (2009/07/01) 新規追加
    218         * @og.rev 5.5.2.6 (2012/05/25) インターフェースにgetterメソッド追加
    219         *
    220         * @return リソースオブジェクト
    221         */
    222        ResourceManager getResource() ;
    223
    224        /**
    225         * デバッグ情報を表示するかどうか[true/false]を指定します。
    226         * true でデバッグ情報を表示します。
    227         *
    228         * @param   flag 表示するかどうか[true:表示する/false:表示しない]
    229         */
    230        void setDebug( boolean flag ) ;
    231
    232        /**
    233         * デバッグ情報を表示するかどうか[true/false]を取得します。
    234         * true でデバッグ情報を表示します。
    235         *
    236         * @og.rev 5.5.2.6 (2012/05/25) インターフェースにgetterメソッド追加
    237         *
    238         * @return  デバッグ情報[true:表示する/false:表示しない]
    239         */
    240        boolean isDebug() ;
    241
    242        /**
    243         * エラーコード を取得します。
    244         * エラーコード は、ErrorMessage クラスで規定されているコードです。
    245         *
    246         * @return   エラーコード
    247         */
    248        int getErrorCode() ;
    249
    250        /**
    251         * エラーメッセージオブジェクト を取得します。
    252         *
    253         * @return   エラーメッセージオブジェクト
    254         */
    255        ErrorMessage getErrorMessage() ;
    256}