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