jp.go.aist.dmrc.platform.beans.system
クラス PFExternalProgramIF

java.lang.Object
  上位を拡張 jp.go.aist.dmrc.platform.beans.system.PFExternalProgramIF
すべての実装されたインタフェース:
java.io.Serializable, PFComponent, PFXMLSerializable, PFDataCreateEventSource, PFDataSetEventSource, PFDataUpdateEventSource, PFEventSource, PFProcessTerminateEventSource

public class PFExternalProgramIF
extends java.lang.Object
implements PFComponent, PFProcessTerminateEventSource, PFDataSetEventSource, PFDataCreateEventSource, PFDataUpdateEventSource, PFXMLSerializable

外部プログラム通信コンポーネント。
 このコンポーネントは、プラットフォームの外にある外部プログラムを起動したのち、 そのプログラムとの入出力ストリームを確保し、通信を行います。ただし、起動する外部プロ グラムは、GUIを持たないコマンドライン式のものとします。
 通信の仕方には、対話モードと非対話モードの2つがあります。対話モードの場合、1つの コマンド処理が終了し、その返値を受け取ってから次のコマンドを送信します。非対話モード の場合、送信したコマンドの処理状況に関わらず、setCommand()によって設定されたコマンド を随時送信し、最後に外部プログラムが終了した時点で、すべての外部プログラム出力をまとめて 受け取ります。対話モード、非対話モードのいずれにおいても、setCommand()による 送信コマンドの設定は、任意のタイミングで行うことができます。

コンポーネントから発生するイベント

関連項目:
直列化された形式

コンストラクタの概要
PFExternalProgramIF()
          コンストラクタ
PFExternalProgramIF(java.lang.String strProg)
          起動・通信する外部プログラムを指定したインスタンスを生成する。
 
メソッドの概要
 void addPFDataCreateListener(PFDataCreateListener lis)
          引数で与えられたイベントリスナを登録し、 データ生成イベント発生時に処理を行う対象とする。
 void addPFDataSetListener(PFDataSetListener lis)
          引数で与えられたイベントリスナを登録し、 データ設定イベント発生時に処理を行う対象とする。
 void addPFDataUpdateListener(PFDataUpdateListener lis)
          引数で与えられたイベントリスナを登録し、 データ更新イベント発生時に処理を行う対象とする。
 void addPFProcessTerminateListener(PFProcessTerminateListener lis)
          引数で与えられたイベントリスナを登録し、 処理完了イベント発生時に処理を行う対象とする。
 void browseByDefaultBrowser(java.lang.String url)
          標準のブラウザでURLを開く。
 int countUnsentCommand()
          未送信コマンド数を取得する。
 java.lang.String getCommand(int index)
          外部プログラムへ送信したコマンドをインデックスで指定して取得する。
 java.lang.String getCommand(java.lang.String res)
          外部プログラムからの結果を指定し、それに対応する送信コマンドを 取得する。
 java.lang.String getCommandln(int index)
          外部プログラムへ送信したコマンドをインデックスで指定し、 改行を付けて取得する。
 java.lang.String getCommandln(java.lang.String res)
          外部プログラムからの結果を指定し、それに対応する送信コマンドを 改行を付けて取得する。
 int getComponentID()
          コンポーネントIDを取得する。
 java.lang.String getComponentKey()
          コンポーネントキーを取得する。
 java.lang.String getComponentName()
          コンポーネント名称を取得する。
 java.lang.String getComponentPublicName()
          コンポーネント公開名を取得する.
 java.lang.String getComponentString()
          コンポーネントの文字列表現を取得する。
 java.lang.String getErrorMessage()
          実行中の外部プログラムからのエラーメッセージを取得する。
 int getExitValue()
          外部プログラムが終了したときの終了コードを取得する。
 java.lang.String getLastCommand()
          外部プログラムへ最後に送信したコマンドを取得する。
 java.lang.String getLastCommandln()
          外部プログラムへ最後に送信したコマンドを、改行を付けて返す。
 java.lang.String getLastResult()
          外部プログラムから最後に得た結果を取得する。
 java.lang.String getLastResultln()
          外部プログラムから最後に得た結果を、改行を付けて取得する。
 java.util.Iterator getPFDataCreateListenerList()
          データ生成イベントリスナ配列を取得する。
 java.util.Iterator getPFDataSetListenerList()
          データ設定イベントリスナ配列を取得する。
 java.util.Iterator getPFDataUpdateListenerList()
          データ更新イベントリスナ配列を取得する。
 java.util.Iterator getPFProcessTerminateListenerList()
          処理完了イベントリスナ配列を取得する。
 java.lang.String getProgram()
          起動・通信を行う外部プログラム名を返す。
 java.lang.String getResult(int index)
          外部プログラムからの結果をインデックスで指定して取得する。
 java.lang.String getResult(java.lang.String cmd)
          文字列で指定された送信コマンドに対応する外部プログラムからの結果を 取得する。
 java.lang.String getResultln(int index)
          外部プログラムからの結果をインデックスで指定し、改行を付けて取得する。
 java.lang.String getResultln(java.lang.String cmd)
          文字列で指定された送信コマンドに対応する外部プログラムからの結果を 改行を付けて取得する。
 boolean isAllowPullTransfer()
          他PFからのPull型コンポーネント転送要求に対する可否属性を取得する.
 boolean isAllowPushTransfer()
          他PFへのPush型コンポーネント転送要求に対する可否属性を取得する.
 boolean isAllowRemoteInvocation()
          他PFからのコンポーネント連携要求に対する可否属性を取得する.
 void launchProgram(int eventNo, java.lang.String command, PFObjectList envList, java.lang.String dirStr)
          外部プログラム名を指定して独立したプロセスで実行する。
 void launchProgram(java.lang.String command, PFObjectList envList, java.lang.String dirStr)
          外部プログラム名を指定して独立したプロセスで実行する。
 void localeUpdated()
          ロケール変更に対応する。
 void openByDefaultProgram(java.io.File file)
          関連づけられたアプリケーションでファイルを開く。
 void readXML(PFXMLLoader in)
          コンポーネントのXML入力.
 void removeAll()
          全リストの全要素を削除する。
 java.lang.String removeCommand(int index)
          外部プログラムへ送信予定のコマンド文字列を削除する。
 int removeCommand(java.lang.String strCmd)
          外部プログラムへ送信予定のコマンド文字列を削除する。
 void removePFDataCreateListener(PFDataCreateListener lis)
          引数で与えられたイベントリスナを削除し、 データ生成イベント発生時に処理を行う対象から外す。
 void removePFDataSetListener(PFDataSetListener lis)
          引数で与えられたイベントリスナを削除し、 データ設定イベント発生時に処理を行う対象から外す。
 void removePFDataUpdateListener(PFDataUpdateListener lis)
          引数で与えられたイベントリスナを削除し、 データ更新イベント発生時に処理を行う対象から外す。
 void removePFProcessTerminateListener(PFProcessTerminateListener lis)
          引数で与えられたイベントリスナを削除し、 処理完了イベント発生時に処理を行う対象から外す。
 void setAllowPullTransfer(boolean flag)
          他PFからのPull型コンポーネント転送要求に対する可否属性を設定する.
 void setAllowPushTransfer(boolean flag)
          他PFへのPush型コンポーネント転送要求に対する可否属性を設定する.
 void setAllowRemoteInvocation(boolean flag)
          他PFからのコンポーネント連携要求に対する可否属性を設定する.
 int setCommand(java.lang.String strCmd)
          外部プログラムへ送信するコマンド文字列を設定する。
 void setComponentID(int id)
          コンポーネントIDを設定する。
 void setComponentKey(java.lang.String key)
          コンポーネントキーを設定する。
 void setComponentPublicName(java.lang.String publicName)
          コンポーネント公開名を設定する.
 void setProgram(java.lang.String strProg)
          起動・通信を行う外部プログラムを指定する。
 void startProgram()
          指定された外部プログラムを対話モードで起動する。
 void startProgram(boolean interact)
          指定された外部プログラムを対話・非対話モード指定で起動する。
 void startProgram(boolean interact, PFObjectList envList, java.lang.String dirStr)
          指定された外部プログラムを対話有無・実行位置・環境変数指定で起動する。
 void terminateLaunchedProgram()
          実行中の全ての外部プログラム(独立プロセス)を終了する。
 void terminateProgram()
          実行中の外部プログラムを終了する。
 void writeXML(PFXMLGenerator out)
          コンポーネントのXML出力.
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

PFExternalProgramIF

public PFExternalProgramIF()
コンストラクタ


PFExternalProgramIF

public PFExternalProgramIF(java.lang.String strProg)
起動・通信する外部プログラムを指定したインスタンスを生成する。

パラメータ:
strProg - 外部コマンド名
メソッドの詳細

getComponentName

public java.lang.String getComponentName()
コンポーネント名称を取得する。

定義:
インタフェース PFComponent 内の getComponentName
戻り値:
コンポーネント名

getComponentKey

public java.lang.String getComponentKey()
コンポーネントキーを取得する。

定義:
インタフェース PFComponent 内の getComponentKey
戻り値:
コンポーネントキー文字列

setComponentKey

public void setComponentKey(java.lang.String key)
コンポーネントキーを設定する。

定義:
インタフェース PFComponent 内の setComponentKey
パラメータ:
key - コンポーネントキー文字列

getComponentID

public int getComponentID()
コンポーネントIDを取得する。

定義:
インタフェース PFComponent 内の getComponentID
戻り値:
コンポーネントID

setComponentID

public void setComponentID(int id)
コンポーネントIDを設定する。
コンポーネントIDはプラットフォームPFComponentBusから設定される。 各コンポーネント内では操作しないこと。

定義:
インタフェース PFComponent 内の setComponentID
パラメータ:
id - 設定するコンポーネントID

getComponentString

public java.lang.String getComponentString()
コンポーネントの文字列表現を取得する。
形式:"Component Name" [ ID : "ID" ]

定義:
インタフェース PFComponent 内の getComponentString
戻り値:
文字列表現

getComponentPublicName

public java.lang.String getComponentPublicName()
コンポーネント公開名を取得する.

定義:
インタフェース PFComponent 内の getComponentPublicName
戻り値:
コンポーネント公開名

setComponentPublicName

public void setComponentPublicName(java.lang.String publicName)
                            throws PFComponentException
コンポーネント公開名を設定する.
空文字のみの公開名は、nullに置き換える。数字のみの公開名は許可しない。 また、既存コンポーネントとの重複も認めない.

定義:
インタフェース PFComponent 内の setComponentPublicName
パラメータ:
publicName - 設定するコンポーネント公開名
例外:
PFComponentException - 規約に反する名前が設定されようとした場合

isAllowRemoteInvocation

public boolean isAllowRemoteInvocation()
他PFからのコンポーネント連携要求に対する可否属性を取得する.

定義:
インタフェース PFComponent 内の isAllowRemoteInvocation
戻り値:
コンポーネント連携要求可否属性

setAllowRemoteInvocation

public void setAllowRemoteInvocation(boolean flag)
他PFからのコンポーネント連携要求に対する可否属性を設定する.

定義:
インタフェース PFComponent 内の setAllowRemoteInvocation
パラメータ:
flag - コンポーネント連携要求に対する可否

isAllowPullTransfer

public boolean isAllowPullTransfer()
他PFからのPull型コンポーネント転送要求に対する可否属性を取得する.

定義:
インタフェース PFComponent 内の isAllowPullTransfer
戻り値:
Pull型コンポーネント転送要求可否属性

setAllowPullTransfer

public void setAllowPullTransfer(boolean flag)
他PFからのPull型コンポーネント転送要求に対する可否属性を設定する.

定義:
インタフェース PFComponent 内の setAllowPullTransfer
パラメータ:
flag - Pull型コンポーネント転送要求に対する可否

isAllowPushTransfer

public boolean isAllowPushTransfer()
他PFへのPush型コンポーネント転送要求に対する可否属性を取得する.

定義:
インタフェース PFComponent 内の isAllowPushTransfer
戻り値:
Push型コンポーネント転送要求可否属性

setAllowPushTransfer

public void setAllowPushTransfer(boolean flag)
他PFへのPush型コンポーネント転送要求に対する可否属性を設定する.

定義:
インタフェース PFComponent 内の setAllowPushTransfer
パラメータ:
flag - Push型コンポーネント転送要求に対する可否

getPFProcessTerminateListenerList

public java.util.Iterator getPFProcessTerminateListenerList()
処理完了イベントリスナ配列を取得する。

定義:
インタフェース PFProcessTerminateEventSource 内の getPFProcessTerminateListenerList
戻り値:
イベントリスナイテレータ

addPFProcessTerminateListener

public void addPFProcessTerminateListener(PFProcessTerminateListener lis)
引数で与えられたイベントリスナを登録し、 処理完了イベント発生時に処理を行う対象とする。

定義:
インタフェース PFProcessTerminateEventSource 内の addPFProcessTerminateListener
パラメータ:
lis - 追加対象イベントリスナ

removePFProcessTerminateListener

public void removePFProcessTerminateListener(PFProcessTerminateListener lis)
引数で与えられたイベントリスナを削除し、 処理完了イベント発生時に処理を行う対象から外す。

定義:
インタフェース PFProcessTerminateEventSource 内の removePFProcessTerminateListener
パラメータ:
lis - 削除対象イベントリスナ

getPFDataCreateListenerList

public java.util.Iterator getPFDataCreateListenerList()
データ生成イベントリスナ配列を取得する。

定義:
インタフェース PFDataCreateEventSource 内の getPFDataCreateListenerList
戻り値:
イベントリスナイテレータ

addPFDataCreateListener

public void addPFDataCreateListener(PFDataCreateListener lis)
引数で与えられたイベントリスナを登録し、 データ生成イベント発生時に処理を行う対象とする。

定義:
インタフェース PFDataCreateEventSource 内の addPFDataCreateListener
パラメータ:
lis - 追加対象イベントリスナ

removePFDataCreateListener

public void removePFDataCreateListener(PFDataCreateListener lis)
引数で与えられたイベントリスナを削除し、 データ生成イベント発生時に処理を行う対象から外す。

定義:
インタフェース PFDataCreateEventSource 内の removePFDataCreateListener
パラメータ:
lis - 削除対象イベントリスナ

getPFDataSetListenerList

public java.util.Iterator getPFDataSetListenerList()
データ設定イベントリスナ配列を取得する。

定義:
インタフェース PFDataSetEventSource 内の getPFDataSetListenerList
戻り値:
イベントリスナイテレータ

addPFDataSetListener

public void addPFDataSetListener(PFDataSetListener lis)
引数で与えられたイベントリスナを登録し、 データ設定イベント発生時に処理を行う対象とする。

定義:
インタフェース PFDataSetEventSource 内の addPFDataSetListener
パラメータ:
lis - 追加対象イベントリスナ

removePFDataSetListener

public void removePFDataSetListener(PFDataSetListener lis)
引数で与えられたイベントリスナを削除し、 データ設定イベント発生時に処理を行う対象から外す。

定義:
インタフェース PFDataSetEventSource 内の removePFDataSetListener
パラメータ:
lis - 削除対象イベントリスナ

getPFDataUpdateListenerList

public java.util.Iterator getPFDataUpdateListenerList()
データ更新イベントリスナ配列を取得する。

定義:
インタフェース PFDataUpdateEventSource 内の getPFDataUpdateListenerList
戻り値:
イベントリスナイテレータ

addPFDataUpdateListener

public void addPFDataUpdateListener(PFDataUpdateListener lis)
引数で与えられたイベントリスナを登録し、 データ更新イベント発生時に処理を行う対象とする。

定義:
インタフェース PFDataUpdateEventSource 内の addPFDataUpdateListener
パラメータ:
lis - 追加対象イベントリスナ

removePFDataUpdateListener

public void removePFDataUpdateListener(PFDataUpdateListener lis)
引数で与えられたイベントリスナを削除し、 データ更新イベント発生時に処理を行う対象から外す。

定義:
インタフェース PFDataUpdateEventSource 内の removePFDataUpdateListener
パラメータ:
lis - 削除対象イベントリスナ

localeUpdated

public void localeUpdated()
ロケール変更に対応する。

定義:
インタフェース PFComponent 内の localeUpdated

setProgram

public void setProgram(java.lang.String strProg)
                throws PFComponentException
起動・通信を行う外部プログラムを指定する。

パラメータ:
strProg - 外部プログラム名
例外:
PFComponentException

getProgram

public java.lang.String getProgram()
起動・通信を行う外部プログラム名を返す。

戻り値:
外部プログラム名文字列

startProgram

public void startProgram()
                  throws PFComponentException
指定された外部プログラムを対話モードで起動する。

例外:
PFComponentException

startProgram

public void startProgram(boolean interact)
                  throws PFComponentException
指定された外部プログラムを対話・非対話モード指定で起動する。

パラメータ:
interact - trueのとき、対話モード
例外:
PFComponentException

startProgram

public void startProgram(boolean interact,
                         PFObjectList envList,
                         java.lang.String dirStr)
                  throws PFComponentException
指定された外部プログラムを対話有無・実行位置・環境変数指定で起動する。 環境変数と値のリストは「変数=値」という形式の文字列を要素とする。 環境変数と値のリスト、および起動するディレクトリはnullを指定するとMZ Platform のプロセスの状態を継承する。

パラメータ:
interact - trueのとき、対話モード
envList - 環境変数リスト
dirStr - 実行位置
例外:
PFComponentException

setCommand

public int setCommand(java.lang.String strCmd)
               throws PFComponentException
外部プログラムへ送信するコマンド文字列を設定する。

パラメータ:
strCmd - コマンド文字列
戻り値:
追加されたコマンドのインデックス
例外:
PFComponentException

removeCommand

public int removeCommand(java.lang.String strCmd)
                  throws PFComponentException
外部プログラムへ送信予定のコマンド文字列を削除する。

パラメータ:
strCmd - 削除するコマンド文字列
戻り値:
削除されたコマンド文字列のインデックス
例外:
PFComponentException

removeCommand

public java.lang.String removeCommand(int index)
                               throws PFComponentException
外部プログラムへ送信予定のコマンド文字列を削除する。

パラメータ:
index - 削除するコマンド文字列のインデックス
戻り値:
削除されたコマンド文字列
例外:
PFComponentException

terminateProgram

public void terminateProgram()
                      throws PFException
実行中の外部プログラムを終了する。

例外:
PFException

getExitValue

public int getExitValue()
外部プログラムが終了したときの終了コードを取得する。 一般的には0が正常終了を示すが、終了コードの値は外部プログラムに依存する。

戻り値:
終了コード

getResult

public java.lang.String getResult(java.lang.String cmd)
文字列で指定された送信コマンドに対応する外部プログラムからの結果を 取得する。送信コマンドは、"'外部プログラム名': '送信コマンド名'"と して指定する。

パラメータ:
cmd - 送信コマンドを示す文字列
戻り値:
送信コマンドに対応する結果を示す文字列

getResultln

public java.lang.String getResultln(java.lang.String cmd)
文字列で指定された送信コマンドに対応する外部プログラムからの結果を 改行を付けて取得する。 送信コマンドは、"'外部プログラム名': '送信コマンド名'"として指定する。

パラメータ:
cmd - 送信コマンドを示す文字列
戻り値:
送信コマンドに対応する結果を示す文字列

getResult

public java.lang.String getResult(int index)
外部プログラムからの結果をインデックスで指定して取得する。

パラメータ:
index - インデックス
戻り値:
インデックスで指定された結果を示す文字列

getResultln

public java.lang.String getResultln(int index)
外部プログラムからの結果をインデックスで指定し、改行を付けて取得する。

パラメータ:
index - インデックス
戻り値:
インデックスで指定された結果を示す文字列

getLastResult

public java.lang.String getLastResult()
外部プログラムから最後に得た結果を取得する。

戻り値:
外部プログラムから最後に得た結果を示す文字列

getLastResultln

public java.lang.String getLastResultln()
外部プログラムから最後に得た結果を、改行を付けて取得する。

戻り値:
外部プログラムから最後に得た結果を示す文字列

getCommand

public java.lang.String getCommand(java.lang.String res)
外部プログラムからの結果を指定し、それに対応する送信コマンドを 取得する。 コマンドは、"'外部プログラム名': '送信コマンド名'"という形式で 返される。

パラメータ:
res - 結果を示す文字列
戻り値:
結果に対応する送信コマンドを示す文字列

getCommandln

public java.lang.String getCommandln(java.lang.String res)
外部プログラムからの結果を指定し、それに対応する送信コマンドを 改行を付けて取得する。 コマンドは、"'外部プログラム名': '送信コマンド名'"という形式で 返される。

パラメータ:
res - 結果を示す文字列
戻り値:
結果に対応する送信コマンドを示す文字列

getCommand

public java.lang.String getCommand(int index)
外部プログラムへ送信したコマンドをインデックスで指定して取得する。 コマンドは、"'外部プログラム名': '送信コマンド名'"という形式で 返される。

パラメータ:
index - インデックス
戻り値:
インデックスで指定されたコマンドを示す文字列

getCommandln

public java.lang.String getCommandln(int index)
外部プログラムへ送信したコマンドをインデックスで指定し、 改行を付けて取得する。 コマンドは、"'外部プログラム名': '送信コマンド名'"という形式で 返される。

パラメータ:
index - インデックス
戻り値:
インデックスで指定されたコマンドを示す文字列

getLastCommand

public java.lang.String getLastCommand()
外部プログラムへ最後に送信したコマンドを取得する。

戻り値:
外部プログラムへ最後に送信したコマンドを示す文字列

getLastCommandln

public java.lang.String getLastCommandln()
外部プログラムへ最後に送信したコマンドを、改行を付けて返す。

戻り値:
外部プログラムへ最後に送信したコマンドを示す文字列

countUnsentCommand

public int countUnsentCommand()
未送信コマンド数を取得する。


removeAll

public void removeAll()
全リストの全要素を削除する。


launchProgram

public void launchProgram(java.lang.String command,
                          PFObjectList envList,
                          java.lang.String dirStr)
                   throws PFComponentException
外部プログラム名を指定して独立したプロセスで実行する。 外部プログラムとの通信は行わないので、同時に複数の外部プログラムを起動できる。 引数のコマンドには外部プログラムのパス名とそれに対する引数を指定できる。 環境変数と値のリストは「変数=値」という形式の文字列を要素とする。 環境変数と値のリスト、および起動するディレクトリはnullを指定するとMZ Platform のプロセスの状態を継承する。

パラメータ:
command - 起動する外部プログラムのコマンド
envList - 環境変数と値のリスト
dirStr - 起動するディレクトリ
例外:
PFComponentException - 起動失敗

launchProgram

public void launchProgram(int eventNo,
                          java.lang.String command,
                          PFObjectList envList,
                          java.lang.String dirStr)
                   throws PFComponentException
外部プログラム名を指定して独立したプロセスで実行する。 外部プログラムへのコマンド送信は行わないので、同時に複数の外部プログラムを起動できる。 引数のコマンドには外部プログラムのパス名とそれに対する引数を指定できる。 環境変数と値のリストは「変数=値」という形式の文字列を要素とする。 環境変数と値のリスト、および起動するディレクトリはnullを指定するとMZ Platform のプロセスの状態を継承する。 外部プログラムからの出力情報は指定したイベント番号のデータ生成イベントで受け取ることができる。

パラメータ:
eventNo - 結果を受け取る際のイベント番号
command - 起動する外部プログラムのコマンド
envList - 環境変数と値のリスト
dirStr - 起動するディレクトリ
例外:
PFComponentException - 起動失敗

terminateLaunchedProgram

public void terminateLaunchedProgram()
                              throws PFException
実行中の全ての外部プログラム(独立プロセス)を終了する。

例外:
PFException

getErrorMessage

public java.lang.String getErrorMessage()
実行中の外部プログラムからのエラーメッセージを取得する。

戻り値:
実行中の外部プログラムからのエラーメッセージ

readXML

public void readXML(PFXMLLoader in)
コンポーネントのXML入力.

定義:
インタフェース PFXMLSerializable 内の readXML
パラメータ:
in - XML入力ユーティリティ

writeXML

public void writeXML(PFXMLGenerator out)
              throws java.io.IOException
コンポーネントのXML出力.

定義:
インタフェース PFXMLSerializable 内の writeXML
パラメータ:
out - XML出力ユーティリティ
例外:
java.io.IOException

openByDefaultProgram

public void openByDefaultProgram(java.io.File file)
                          throws PFException
関連づけられたアプリケーションでファイルを開く。

パラメータ:
file - ファイル
例外:
PFException

browseByDefaultBrowser

public void browseByDefaultBrowser(java.lang.String url)
                            throws PFException
標準のブラウザでURLを開く。

パラメータ:
url - URL
例外:
PFException