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.fukurou.transfer;
017    
018    import org.opengion.fukurou.db.Transaction;
019    import org.opengion.fukurou.util.ApplicationInfo;
020    
021    /**
022     * 伝é?要求に対するの読取方法を定義するインターフェースですã?
023     *
024     * å�?®Ÿè£?‚¯ラスでは、読取å?ç�?@link #read(TransferConfig, Transaction)}
025     * 、完äº??ç�?@link #complete(TransferConfig, Transaction)}、エラー処ç�?@link #error(TransferConfig, ApplicationInfo)}を実è£?�™るå¿?¦�がありますã?
026     * サブクラスå†?ƒ¨で、DB関連の処ç�?‚’行う場合ã?、引数のTransactionオブジェクトを利用して下さã�??
027     * またã?接続に対するCommit/Rollbackは、呼び出しå?で行いますã?で、実行å?ç�??中では行わなã�?�§下さã�??
028     *
029     * またã?HTTP経由での実行などで、読取å?ç�?�¨そã?後ã?完äº?エラー処ç�?�§オブジェクトが同ä¸??なã�??合にã€?
030     * 外部から読取キーの取得及び設定を行うことができますã?
031     * 具体的には、{@link #read(TransferConfig, Transaction)}を実行後ã?{@link #getKeys()}を呼び出しすることで
032     * 終äº??ç�?�§処ç�?¯¾象となるキーæƒ??を取得することができますã?
033     * こã?キーæƒ??を保持しã?{@link #setKeys(String[])}で別オブジェクトに対してキーを設定することでã€?
034     * 完äº??ç�?@link #complete(TransferConfig, Transaction)}、エラー処ç�?@link #error(TransferConfig, ApplicationInfo)}
035     * を呼び出しすることができますã?
036     *
037     * @og.group 伝é?シスãƒ?ƒ 
038     *
039     * @version  5.0
040     * @author   Hiroki.Nakamura
041     * @since    JDK1.6
042     */
043    public interface TransferRead {
044    
045            /**
046             * 読取å?ç�?‚’実行し、結果をテキストデータの配å?として返しますã?
047             *
048             * @param config 伝é?設定オブジェクãƒ?
049             * @param tran トランザクションオブジェクãƒ?
050             *
051             * @return 読み取りしたãƒ??タ(配å?)
052             */
053            public String[] read( final TransferConfig config, final Transaction tran );
054    
055            /**
056             * 更新キー(配å?)を返しますã?
057             *
058             * @return 更新キー(配å?)
059             */
060            public String[] getKeys();
061    
062            /**
063             * 更新キー(配å?)をセãƒ?ƒˆしますã?
064             *
065             * @param keys 更新キー(配å?)
066             */
067            public void setKeys( final String[] keys );
068    
069            /**
070             * 完äº??ç�?‚’実行しますã?
071             * こã?処ç�??実行方法で定義された実行å?ç�?�Œ正常終äº?�—たå?合に呼び出しされますã?
072             * 更新対象のキーにつã�?�¦は、{@link #setKeys(String[])}で外部からセãƒ?ƒˆすることもできますã?
073             *
074             * @param config 伝é?設定オブジェクãƒ?
075             * @param tran トランザクションオブジェクãƒ?
076             */
077            public void complete( final TransferConfig config, final Transaction tran );
078    
079            /**
080             * エラー処ç�?‚’実行しますã?
081             * こã?処ç�??実行方法で定義された実行å?ç�?�Œ以上終äº?�—たå?合に呼び出しされますã?
082             * 更新対象のキーにつã�?�¦は、{@link #setKeys(String[])}で外部からセãƒ?ƒˆすることもできますã?
083             *
084             * @param config 伝é?設定オブジェクãƒ?
085             * @param appInfo DB接続情報
086             */
087            public void error( final TransferConfig config, final ApplicationInfo appInfo );
088    }