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