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}