org.opengion.fukurou.util

## クラス AbstractConnect

- java.lang.Object
- - org.opengion.fukurou.util.AbstractConnect

- すべての実装されたインタフェース:
    ConnectIF
  直系の既知のサブクラス:
    FTPConnect, SFTPConnect, SMBConnect

      public abstract class AbstractConnect
      extends java.lang.Object
      implements ConnectIF

  AbstractConnect.java は、共通的に使用される ファイル伝送関連の基本機能を実装した、Abstractクラスです。 -host=サーバー -user=ユーザー -passwd=パスワード -remoteFile=接続先のファイル名 を必須設定します。 -localFile=ローカルのファイル名は、必須ではありませんが、-command=DEL の場合にのみ不要であり、 それ以外の command の場合は、必要です。 -command=[GET/PUT/DEL/GETDIR/PUTDIR/DELDIR] は、サーバーに対しての処理の方法を指定します。 GET:サーバーからローカルにファイル転送します(初期値) PUT:ローカルファイルをサーバーに PUT(STORE、SAVE、UPLOAD、などと同意語)します。 DEL:サーバーの指定のファイルを削除します。この場合のみ、-localFile 属性の指定は不要です。 GETDIR,PUTDIR,DELDIR:指定のフォルダ以下のファイルを処理します。 -mkdirs=[true/false] は、受け側のファイル(GET時:LOCAL、PUT時:サーバー)に取り込むファイルのディレクトリが 存在しない場合に、作成するかどうかを指定します(初期値:true) 通常、サーバーに、フォルダ階層を作成してPUTする場合、動的にフォルダ階層を作成したいケースで便利です。 逆に、フォルダは確定しており、指定フォルダ以外に PUT するのはバグっていると事が分かっている場合には false に設定して、存在しないフォルダにPUT しようとすると、エラーになるようにします。 引数文字列中に空白を含む場合は、ダブルコーテーション("") で括って下さい。 引数文字列の 『=』の前後には、空白は挟めません。必ず、-key=value の様に 繋げてください。
  形式サンプル:

         XXXConnect -host=サーバー -user=ユーザー -passwd=パスワード -remoteFile=接続先のファイル名 [-localFile=ローカルのファイル名]
                           [-command=[GET/PUT/DEL/GETDIR/PUTDIR/DELDIR] ] [-display=[true/false] ] ・・・・

            -host=サーバー                    ：接続先のサーバーのアドレスまたは、サーバー名
            -user=ユーザー                    ：接続するユーザー名
            -passwd=パスワード                ：接続するユーザーのパスワード
            -remoteFile=接続先のファイル名    ：接続先のサーバー側のファイル名。PUT,GET 関係なくFTP側として指定します。
           [-localFile=ローカルのファイル名]  ：ローカルのファイル名。PUT,GET 関係なくローカルファイルを指定します。
           [-port=ポート ]                    ：接続するサーバーのポートを指定します。
           [-command=[GET/PUT/DEL] ]          ：サーバー側での処理の方法を指定します。
                     [GETDIR/PUTDIR/DELDIR]]          GET:FTP⇒LOCAL、PUT:LOCAL⇒FTP への転送です(初期値:GET)
                                                      DEL:FTPファイルを削除します。
                                                      GETDIR,PUTDIR,DELDIR 指定のフォルダ以下のファイルを処理します。
           [-mkdirs=[true/false]  ]           ：受け側ファイル(GET時:LOCAL、PUT時:サーバー)にディレクトリを作成するかどうか(初期値:true)
                                                      (false:ディレクトリが無ければ、エラーにします。)
           [-encode=エンコード名 ]            ：日本語ファイル名などのエンコード名を指定します(初期値:Windows-31J)
           [-timeout=タイムアウト[秒] ]       ：Dataタイムアウト(初期値:600 [秒])
           [-display=[false/true] ]           ：trueは、検索状況を表示します(初期値:false)
           [-debug=[false|true]   ]           ：デバッグ情報を標準出力に表示する(true)かしない(false)か(初期値:false[表示しない])

  変更履歴:

    5.1.6.0 (2010/05/01) 新規追加

  バージョン
    5.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### フィールドのサマリー

    フィールド
    修飾子とタイプ | フィールドと説明
    --- | ---
    `static java.lang.String` | `CR`
    `static boolean` | `FLAG_NG` 異常フラグ false
    `static boolean` | `FLAG_OK` 正常フラグ true
    `protected java.lang.String` | `host` サーバー
    `protected boolean` | `isDebug` デバッグ情報を表示するかどうか
    `protected boolean` | `isDisplay` 検索状況を表示するかどうか
    `protected boolean` | `isMkdirs` ディレクトリを作成するかどうか
    `protected java.lang.String` | `passwd` パスワード
    `protected java.lang.String` | `port` ポート
    `protected int` | `timeout` Dataタイムアウト
    `static int` | `TIMEOUT` Dataタイムアウト(初期値:600 [秒])
    `protected java.lang.String` | `user` ユーザー

  - ### コンストラクタのサマリー

    コンストラクタ
    コンストラクタと説明
    `AbstractConnect()`

  - ### メソッドのサマリー

    すべてのメソッド インスタンス・メソッド abstractメソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `void` | `action(java.lang.String command, java.lang.String localFile, java.lang.String remoteFile)` command , localFile , remoteFile を元に、FTP処理を行います。
    `protected abstract void` | `actionDEL(java.lang.String remoteFile)` command="DEL" が指定されたときの処理を行います。
    `protected abstract void` | `actionDELdir(java.lang.String remoteDir)` command="DELDIR" が指定されたときの処理を行います。
    `protected abstract void` | `actionGET(java.lang.String localFile, java.lang.String remoteFile)` command="GET" が指定されたときの処理を行います。
    `protected abstract void` | `actionGETdir(java.lang.String localDir, java.lang.String remoteDir)` command="GETDIR" が指定されたときの処理を行います。
    `protected abstract void` | `actionPUT(java.lang.String localFile, java.lang.String remoteFile)` command="PUT" が指定されたときの処理を行います。
    `protected void` | `actionPUTdir(java.lang.String localDir, java.lang.String remoteDir)` command="PUTDIR" が指定されたときの処理を行います。
    `protected java.lang.String` | `addFile(java.lang.String dir, java.lang.String file)` ディレクトリとファイル名を合成します。
    `abstract void` | `connect()` サーバーへの接続、ログインを行います。
    `abstract void` | `disconnect()` サーバーとの接続をクローズします。
    `protected void` | `errAppend(java.lang.Object... msgs)` 処理中に発生したエラーメッセージをセットします。
    `protected void` | `errAppend(java.lang.Object msg)` 処理中に発生したエラーメッセージをセットします。
    `java.lang.String` | `getErrMsg()` 処理中に発生したエラーメッセージを取り出します。
    `protected java.lang.String` | `getPort()` ポートを取得します。
    `protected int` | `getPort(int defPort)` ポートを取得します。
    `protected void` | `makeLocalDir(java.lang.String localFile)` ローカルファイルのディレクトリを作成します。
    `void` | `setDebug(boolean isDebug)` デバッグ情報の表示可否 を設定します(初期値:false:表示しない)。
    `void` | `setDisplay(boolean isDisplay)` 実行状況の表示可否 を設定します(初期値:false:表示しない)。
    `void` | `setHostUserPass(java.lang.String host, java.lang.String user, java.lang.String passwd)` サーバーの、ホスト、ユーザー、パスワードを設定します。
    `void` | `setMkdirs(boolean isMkdirs)` それぞれの受け側ファイルにディレクトリを作成するかどうか(初期値:true:作成する)。
    `void` | `setPort(java.lang.String port)` 接続に利用するポート番号を設定します。
    `void` | `setTimeout(int timeout)` タイムアウトを秒で指定します(初期値:600 [秒])。

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### フィールドの詳細

    - #### CR

          public static final java.lang.String CR

    - #### FLAG_OK

          public static final boolean FLAG_OK

      正常フラグ true
      関連項目:
        定数フィールド値

    - #### FLAG_NG

          public static final boolean FLAG_NG

      異常フラグ false
      関連項目:
        定数フィールド値

    - #### TIMEOUT

          public static final int TIMEOUT

      Dataタイムアウト(初期値:600 [秒])
      関連項目:
        定数フィールド値

    - #### host

          protected java.lang.String host

      サーバー

    - #### user

          protected java.lang.String user

      ユーザー

    - #### passwd

          protected java.lang.String passwd

      パスワード

    - #### port

          protected java.lang.String port

      ポート

    - #### isMkdirs

          protected boolean isMkdirs

      ディレクトリを作成するかどうか

    - #### timeout

          protected int timeout

      Dataタイムアウト

    - #### isDisplay

          protected boolean isDisplay

      検索状況を表示するかどうか

    - #### isDebug

          protected boolean isDebug

      デバッグ情報を表示するかどうか

  - ### コンストラクタの詳細

    - #### AbstractConnect

          public AbstractConnect()

  - ### メソッドの詳細

    - #### connect

          public abstract void connect()

      サーバーへの接続、ログインを行います。
      定義:
        `connect` インタフェース内 `ConnectIF`

    - #### action

          public void action(java.lang.String command,
                             java.lang.String localFile,
                             java.lang.String remoteFile)

      command , localFile , remoteFile を元に、FTP処理を行います。 このメソッドは、connect( String , String , String )メソッド、および、 paramInit() 実行後に、呼び出す必要があります。 ※ 内部で、command に指定できない値をセットしたか、何らかのエラーが発生した場合。
      定義:
        `action` インタフェース内 `ConnectIF`
      パラメータ:
        `command` - GET:HOST⇒LOCAL 、PUT:LOCAL⇒HOST 、DEL:HOSTファイルを削除
        `localFile` - ローカルのファイル名
        `remoteFile` - HOST接続先のファイル名

    - #### disconnect

          public abstract void disconnect()

      サーバーとの接続をクローズします。 ログインされている場合は、ログアウトも行います。 コネクトされている場合は、ディスコネクトします。
      定義:
        `disconnect` インタフェース内 `ConnectIF`

    - #### actionGET

          protected abstract void actionGET(java.lang.String localFile,
                                            java.lang.String remoteFile)
                                     throws java.lang.Exception

      command="GET" が指定されたときの処理を行います。 接続先のサーバー側のファイル名をローカルにダウンロードします。
      パラメータ:
        `localFile` - ローカルのファイル名
        `remoteFile` - 接続先のファイル名
      例外:
        `java.lang.Exception` - 何らかのエラーが発生した場合。

    - #### actionGETdir

          protected abstract void actionGETdir(java.lang.String localDir,
                                               java.lang.String remoteDir)
                                        throws java.lang.Exception

      command="GETDIR" が指定されたときの処理を行います。 接続先のサーバー側のディレクトリ以下をローカルディレクトリに階層構造のままダウンロードします。
      パラメータ:
        `localDir` - ローカルのディレクトリ名
        `remoteDir` - 接続先のディレクトリ名
      例外:
        `java.lang.Exception` - 何らかのエラーが発生した場合。

    - #### actionPUT

          protected abstract void actionPUT(java.lang.String localFile,
                                            java.lang.String remoteFile)
                                     throws java.lang.Exception

      command="PUT" が指定されたときの処理を行います。 ローカルファイルを、接続先のサーバー側にアップロードします。
      パラメータ:
        `localFile` - ローカルのファイル名
        `remoteFile` - 接続先のファイル名
      例外:
        `java.lang.Exception` - 何らかのエラーが発生した場合。

    - #### actionPUTdir

          protected void actionPUTdir(java.lang.String localDir,
                                      java.lang.String remoteDir)
                               throws java.lang.Exception

      command="PUTDIR" が指定されたときの処理を行います。 ローカルファイルのディレクトリ以下を、接続先のサーバー側のディレクトリに階層構造のままアップロードします。
      パラメータ:
        `localDir` - ローカルのディレクトリ名
        `remoteDir` - 接続先のディレクトリ名
      例外:
        `java.lang.Exception` - 何らかのエラーが発生した場合。
      変更履歴:

        5.3.7.0 (2011/07/01) フォルダにアクセスできない場合は、エラーを返します。

    - #### actionDEL

          protected abstract void actionDEL(java.lang.String remoteFile)
                                     throws java.lang.Exception

      command="DEL" が指定されたときの処理を行います。 接続先のサーバー側のファイル名を削除します。
      パラメータ:
        `remoteFile` - 接続先のファイル名
      例外:
        `java.lang.Exception` - 何らかのエラーが発生した場合。

    - #### actionDELdir

          protected abstract void actionDELdir(java.lang.String remoteDir)
                                        throws java.lang.Exception

      command="DELDIR" が指定されたときの処理を行います。 接続先のサーバー側のディレクトリ名を削除します。
      パラメータ:
        `remoteDir` - 接続先のディレクトリ名
      例外:
        `java.lang.Exception` - 何らかのエラーが発生した場合。

    - #### makeLocalDir

          protected void makeLocalDir(java.lang.String localFile)
                               throws java.io.IOException

      ローカルファイルのディレクトリを作成します。 引数のファイル名は、ファイル名です。作成するディレクトリは、そのファイルオブジェクトの getParentFile() で取得されるディレクトリまでを作成します。 ※ ローカルファイルのディレクトリの作成に失敗した場合は、RuntimeException が throw されます。
      パラメータ:
        `localFile` - ローカルのファイル名
      例外:
        `java.io.IOException` - File#getCanonicalFile() で発生する入出力エラー

    - #### addFile

          protected java.lang.String addFile(java.lang.String dir,
                                             java.lang.String file)

      ディレクトリとファイル名を合成します。 単純に、ディレクトリの最後と、ファイルの最初の、"/" をチェックし、 存在すれば、そのまま、結合し、存在しなければ、"/" を追加します。 両方に存在する場合は、片方をはずします。
      パラメータ:
        `dir` - ディレクトリ名
        `file` - ファイル名
      戻り値:
        合成されたファイル名

    - #### setHostUserPass

          public void setHostUserPass(java.lang.String host,
                                      java.lang.String user,
                                      java.lang.String passwd)

      サーバーの、ホスト、ユーザー、パスワードを設定します。
      定義:
        `setHostUserPass` インタフェース内 `ConnectIF`
      パラメータ:
        `host` - サーバー
        `user` - ユーザー
        `passwd` - パスワード

    - #### setPort

          public void setPort(java.lang.String port)

      接続に利用するポート番号を設定します。
      定義:
        `setPort` インタフェース内 `ConnectIF`
      パラメータ:
        `port` - 接続に利用するポート番号

    - #### getPort

          protected java.lang.String getPort()

      ポートを取得します。 設定されている生のport属性(nullもありうる)を返します。
      戻り値:
        ポート

    - #### getPort

          protected int getPort(int defPort)

      ポートを取得します。 設定されているport属性が、nullの場合は、defPortを返します。
      パラメータ:
        `defPort` - port が null の場合の初期値
      戻り値:
        ポート

    - #### setMkdirs

          public void setMkdirs(boolean isMkdirs)

      それぞれの受け側ファイルにディレクトリを作成するかどうか(初期値:true:作成する)。 -mkdirs=[true/false] は、受け側のファイル(GET時:LOCAL、PUT時:サーバー)に取り込むファイルのディレクトリが 存在しない場合に、作成するかどうかを指定します(初期値:true) 通常、サーバーに、フォルダ階層を作成してPUTする場合、動的にフォルダ階層を作成したいケースで便利です。 逆に、フォルダは確定しており、指定フォルダ以外に PUT するのはバグっていると事が分かっている場合には false に設定して、存在しないフォルダにPUT しようとすると、エラーになるようにします。
      定義:
        `setMkdirs` インタフェース内 `ConnectIF`
      パラメータ:
        `isMkdirs` - 受け側ファイルにディレクトリを作成するかどうか。true:作成する

    - #### setTimeout

          public void setTimeout(int timeout)

      タイムアウトを秒で指定します(初期値:600 [秒])。 オリジナルの FTPClient#setDataTimeout( int ) は、ミリ秒でセット しますが、ここのメソッドでは、秒でセットします。
      定義:
        `setTimeout` インタフェース内 `ConnectIF`
      パラメータ:
        `timeout` - タイムアウト[秒]
      例外:
        `java.lang.RuntimeException` - タイムアウトの指定が大きすぎた場合

    - #### setDisplay

          public void setDisplay(boolean isDisplay)

      実行状況の表示可否 を設定します(初期値:false:表示しない)。
      定義:
        `setDisplay` インタフェース内 `ConnectIF`
      パラメータ:
        `isDisplay` - 実行状況の表示可否

    - #### setDebug

          public void setDebug(boolean isDebug)

      デバッグ情報の表示可否 を設定します(初期値:false:表示しない)。
      定義:
        `setDebug` インタフェース内 `ConnectIF`
      パラメータ:
        `isDebug` - デバッグ情報の表示可否

    - #### errAppend

          protected void errAppend(java.lang.Object msg)

      処理中に発生したエラーメッセージをセットします。
      パラメータ:
        `msg` - メッセージ化したいオブジェクト

    - #### errAppend

          protected void errAppend(java.lang.Object... msgs)

      処理中に発生したエラーメッセージをセットします。
      パラメータ:
        `msgs` - Object...

    - #### getErrMsg

          public java.lang.String getErrMsg()

      処理中に発生したエラーメッセージを取り出します。
      定義:
        `getErrMsg` インタフェース内 `ConnectIF`
      戻り値:
        エラーメッセージ

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.