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