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