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     */
016    package org.opengion.hayabusa.db;
017    
018    import java.util.Map;
019    
020    import org.opengion.fukurou.util.ErrorMessage;
021    import org.opengion.fukurou.db.Transaction;
022    import org.opengion.hayabusa.common.HybsSystem;
023    import 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     */
037    public 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    }