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