    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.fukurou.transfer;
    017
    018import org.opengion.fukurou.util.StringUtil;
    019
    020/**
    021 * 伝送要求に対してのHTTP経由で旧伝送DB(CB01)の読取を行います。
    022 *
    023 * 読取対象は、(データコード) (送り先) (テキスト種別) ([プロトコル]://[ホスト名]:[ポート番号]/[コンテキスト名]/)
    024 * の形式で指定します。
    025 *
    026 * 例)読取対象 : 3 D9 B991 http://localhost:8824/gf/
    027 *
    028 * その他の処理内容については、{@link org.opengion.fukurou.transfer.TransferRead_HTTP}及び
    029 * {@link org.opengion.fukurou.transfer.TransferRead_CB01}のJavaDocを参照して下さい。
    030 *
    031 * @og.group 伝送システム
    032 *
    033 * @version  5.0
    034 * @author   Hiroki.Nakamura
    035 * @since    JDK1.6
    036 */
    037public class TransferRead_HTTP_CB01 extends TransferRead_HTTP {
    038
    039        private String remoteHost = null;               // リモート接続先URL
    040        private String remoteReadObj = null;    // リモート接続先の読取対象
    041
    042        /**
    043         * ローカルの読取対象を、リモート接続先の読取対象とリモート接続先URLに分解します。
    044         *
    045         * @param localReadObj ローカルの読取対象
    046         */
    047        @Override
    048        protected void splitReadObj( final String localReadObj ) {
    049                String[] obj = StringUtil.csv2Array( localReadObj, ' ' );
    050                if( obj.length < 4 ) {
    051                        String errMsg = "読取対象は、(データコード) (送り先) (テキスト種別) ([プロトコル]://[ホスト名]:[ポート番号]/[コンテキスト名]/) の形式で指定して下さい。[READOBJ=" + localReadObj + "]";
    052                        throw new RuntimeException( errMsg );
    053                }
    054                String hcdd = obj[0];
    055                String hto = obj[1];
    056                String hsyu = obj[2];
    057                remoteHost = obj[3];
    058                if( hcdd == null || hcdd.length() == 0
    059                 || hto  == null || hto.length()  == 0
    060                 || hsyu == null || hsyu.length() == 0
    061                 || remoteHost == null || remoteHost.length() == 0 ) {
    062                        String errMsg = "読取対象は、(データコード) (送り先) (テキスト種別) ([プロトコル]://[ホスト名]:[ポート番号]/[コンテキスト名]/) は必須です。[READOBJ=" + localReadObj + "]";
    063                        throw new RuntimeException( errMsg );
    064                }
    065
    066                remoteReadObj = hcdd + " " + hto + " " + hsyu;
    067        }
    068
    069        /**
    070         * リモート接続先URLを返します。
    071         * このメソッドは、{@link #splitReadObj(String)}の後に呼び出しする必要があります。
    072         *
    073         * @return リモート接続先URL
    074         */
    075        @Override
    076        public String getRemoteHost() {
    077                if( remoteHost == null || remoteHost.length() == 0 ) {
    078                        String errMsg = "先に#splitReadObj(String)を実行して下さい";
    079                        throw new RuntimeException( errMsg );
    080                }
    081                return remoteHost;
    082        }
    083
    084        /**
    085         * リモート接続先の読取対象を返します。
    086         * このメソッドは、{@link #splitReadObj(String)}の後に呼び出しする必要があります。
    087         *
    088         * @return 接続URL
    089         */
    090        @Override
    091        public String getRemoteReadObj() {
    092                if( remoteHost == null || remoteHost.length() == 0 ) {
    093                        String errMsg = "先に#splitReadObj(String)を実行して下さい";
    094                        throw new RuntimeException( errMsg );
    095                }
    096                return remoteReadObj;
    097        }
    098}