パッケージ org.opengion.fukurou.util

# クラス AbstractConnect

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

すべての実装されたインタフェース:
  `ConnectIF`

直系の既知のサブクラス:
  `FTPConnect`, `SFTPConnect`, `SMBConnect`

public abstract class AbstractConnect extends 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 の様に 繋げてください。

変更履歴:
  5.1.6.0 (2010/05/01) 新規追加
形式ｻﾝﾌﾟﾙ:
  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[表示しない])
導入されたバージョン:
  JDK5.0,

- ## フィールドの概要

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

- ## コンストラクタの概要

  コンストラクタ
  修飾子
  コンストラクタ
  説明
  `protected`
  `AbstractConnect()`
  デフォルトコンストラクター

- ## メソッドの概要

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

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

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

- ## フィールド詳細

  - ### CR

    protected static final String CR
    システムの改行コードを設定します。

  - ### BUFFER_MIDDLE

    protected static final int BUFFER_MIDDLE
    StringBilderなどの初期値を設定します。 200
    関連項目:
      - 定数フィールド値

  - ### 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 String host
    サーバー

  - ### user

    protected String user
    ユーザー

  - ### passwd

    protected String passwd
    パスワード

  - ### port

    protected String port
    ポート

  - ### isMkdirs

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

  - ### timeout

    protected int timeout
    Dataタイムアウト

  - ### isDisplay

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

  - ### isDebug

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

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

  - ### AbstractConnect

    protected AbstractConnect()
    デフォルトコンストラクター
    変更履歴:
      6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.

- ## メソッドの詳細

  - ### connect

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

  - ### action

    public void action(String command, String localFile, 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接続先のファイル名
    変更履歴:
      6.4.2.0 (2016/01/29) ex.printStackTrace() を、ThrowUtil#ogStackTrace(Throwable) に置き換え。

  - ### disconnect

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

  - ### actionGET

    protected abstract void actionGET(String localFile, String remoteFile) throws IOException
    command="GET" が指定されたときの処理を行います。 接続先のサーバー側のファイル名をローカルにダウンロードします。
    パラメータ:
      `localFile` - ローカルのファイル名
      `remoteFile` - 接続先のファイル名
    例外:
      `IOException` - 何らかのエラーが発生した場合。
    変更履歴:
      6.0.2.5 (2014/10/31) throws で、Exception を返していたのを、IOException に限定します。

  - ### actionGETdir

    protected abstract void actionGETdir(String localDir, String remoteDir) throws IOException
    command="GETDIR" が指定されたときの処理を行います。 接続先のサーバー側のディレクトリ以下をローカルディレクトリに階層構造のままダウンロードします。
    パラメータ:
      `localDir` - ローカルのディレクトリ名
      `remoteDir` - 接続先のディレクトリ名
    例外:
      `IOException` - 何らかのエラーが発生した場合。
    変更履歴:
      6.0.2.5 (2014/10/31) throws で、Exception を返していたのを、IOException に限定します。

  - ### actionPUT

    protected abstract void actionPUT(String localFile, String remoteFile) throws IOException
    command="PUT" が指定されたときの処理を行います。 ローカルファイルを、接続先のサーバー側にアップロードします。
    パラメータ:
      `localFile` - ローカルのファイル名
      `remoteFile` - 接続先のファイル名
    例外:
      `IOException` - 何らかのエラーが発生した場合。
    変更履歴:
      6.0.2.5 (2014/10/31) throws で、Exception を返していたのを、IOException に限定します。

  - ### actionPUTdir

    protected void actionPUTdir(String localDir, String remoteDir) throws IOException
    command="PUTDIR" が指定されたときの処理を行います。 ローカルファイルのディレクトリ以下を、接続先のサーバー側のディレクトリに階層構造のままアップロードします。
    パラメータ:
      `localDir` - ローカルのディレクトリ名
      `remoteDir` - 接続先のディレクトリ名
    例外:
      `IOException` - 何らかのエラーが発生した場合。
    変更履歴:
      5.3.7.0 (2011/07/01) フォルダにアクセスできない場合は、エラーを返します。, 6.0.2.5 (2014/10/31) throws で、Exception を返していたのを、IOException に限定します。

  - ### actionDEL

    protected abstract void actionDEL(String remoteFile) throws IOException
    command="DEL" が指定されたときの処理を行います。 接続先のサーバー側のファイル名を削除します。
    パラメータ:
      `remoteFile` - 接続先のファイル名
    例外:
      `IOException` - 何らかのエラーが発生した場合。
    変更履歴:
      6.0.2.5 (2014/10/31) throws で、Exception を返していたのを、IOException に限定します。

  - ### actionDELdir

    protected abstract void actionDELdir(String remoteDir) throws IOException
    command="DELDIR" が指定されたときの処理を行います。 接続先のサーバー側のディレクトリ名を削除します。
    パラメータ:
      `remoteDir` - 接続先のディレクトリ名
    例外:
      `IOException` - 何らかのエラーが発生した場合。
    変更履歴:
      6.0.2.5 (2014/10/31) throws で、Exception を返していたのを、IOException に限定します。

  - ### makeLocalDir

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

  - ### addFile

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

  - ### setHostUserPass

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

  - ### setPort

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

  - ### getPort

    protected 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` - タイムアウト[秒]
    例外:
      `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(Object msg)
    処理中に発生したエラーメッセージをセットします。
    パラメータ:
      `msg` - メッセージ化したいオブジェクト

  - ### errAppend

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

  - ### getErrMsg

    public String getErrMsg()
    処理中に発生したエラーメッセージを取り出します。
    定義:
      `getErrMsg` インタフェース内 `ConnectIF`
    戻り値:
      エラーメッセージ
    このﾒｿｯﾄﾞは、nullを返しません