public class PFScriptInterpreter extends java.lang.Object implements PFComponent, PFXMLSerializable, PFActionEventSource, PFProcessTerminateEventSource
言語はデフォルトでJavaScriptと簡略化Java(BeanShell http://www.beanshell.org/)に対応。 言語の指定はメソッド起動か属性の設定で行い、JavaScriptはjs、Javaはjavaと指定する。 JRE6以降に追加されたjavax.script.*パッケージのAPIに対応する処理系があれば独自に追加可能。 例として、Python(Jython http://jython.org/)は対応するjython.jarを取得してパスに追加し、 言語指定をpythonとすれば利用できる。また、Ruby(JRuby http://www.jruby.org/) は対応するjruby.jarをパスに追加して言語をrubyとすれば利用できる。 ただし、PythonとRuby以外の言語を独自に追加した場合は、 MZ側イベント発生用の関数(mz_event/mz_event2)をスクリプト側で独自に設定する必要がある。
このコンポーネントから以下のイベントが発生する。
トリガー | イベント番号 |
---|---|
スクリプト中でのmz_event(番号)の呼び出し | 引数で指定した番号 |
トリガー | 結果データ | イベント番号 |
---|---|---|
スクリプト中でのmz_event2(番号,データ)の呼び出し | 引数で指定したデータ | 引数で指定した番号 |
コンストラクタと説明 |
---|
PFScriptInterpreter()
デフォルトコンストラクタ
|
修飾子とタイプ | メソッドと説明 |
---|---|
void |
addPFActionListener(PFActionListener lis)
引数で与えられたイベントリスナを登録し、
アクションイベント発生時に処理を行う対象とする。
|
void |
addPFProcessTerminateListener(PFProcessTerminateListener lis)
引数で与えられたイベントリスナを登録し、
処理完了イベント発生時に処理を行う対象とする。
|
void |
clear()
スクリプト環境を初期化する。
|
java.lang.Object |
evaluate()
現在の環境で保存スクリプトを実行する(戻り値あり)。
|
java.lang.Object |
evaluate(java.lang.String script)
現在の環境でスクリプト文字列を実行する(戻り値あり)。
|
java.lang.Object |
evaluateRuleTable(PFObjectTable table,
boolean all)
実行中の環境でルールテーブルを解釈して実行する。
|
void |
execute()
現在の環境で保存スクリプトを実行する(戻り値なし)。
|
void |
execute(java.lang.String script)
現在の環境でスクリプト文字列を実行する(戻り値なし)。
|
void |
fireEvent(int eventNo)
アクションイベントを発生させる。
|
void |
fireEvent(int eventNo,
java.lang.Object data)
処理完了イベントを発生させる。
|
protected void |
firePFActionPerformed(PFActionEvent event)
アクションイベントを発生させる。
|
protected void |
firePFProcessTerminated(PFProcessTerminateEvent event)
処理完了イベントを発生させる。
|
int |
getComponentID()
コンポーネントIDを取得する。
|
java.lang.String |
getComponentKey()
コンポーネントキーを取得する。
|
PFMultiLocaleString |
getComponentKeys()
全ロケール分のコンポーネントキーを返す。
|
java.lang.String |
getComponentName()
コンポーネント名称を取得する。
|
java.lang.String |
getComponentPublicName()
コンポーネント公開名を取得する.
|
java.lang.String |
getComponentString()
コンポーネントの文字列表現を取得する。
|
java.lang.String |
getLanguage()
スクリプトの言語を取得する。
|
java.util.Iterator |
getPFActionListenerList()
アクションイベントリスナ配列を取得する。
|
java.util.Iterator |
getPFProcessTerminateListenerList()
処理完了イベントリスナ配列を取得する。
|
java.lang.String |
getStoredScript()
保存用スクリプト文字列を取得する。
|
java.lang.Object |
getVariable(java.lang.String name)
実行中のスクリプト環境から変数を取得する。
|
boolean |
isAllowPullTransfer()
他PFからのPull型コンポーネント転送要求に対する可否属性を取得する.
|
boolean |
isAllowPushTransfer()
他PFへのPush型コンポーネント転送要求に対する可否属性を取得する.
|
boolean |
isAllowRemoteInvocation()
他PFからのコンポーネント連携要求に対する可否属性を取得する.
|
void |
localeUpdated()
ロケール変更に対応する。
|
void |
readXML(PFXMLLoader in)
コンポーネントのXML入力.
|
void |
removePFActionListener(PFActionListener lis)
引数で与えられたイベントリスナを削除し、
アクションイベント発生時に処理を行う対象から外す。
|
void |
removePFProcessTerminateListener(PFProcessTerminateListener lis)
引数で与えられたイベントリスナを削除し、
処理完了イベント発生時に処理を行う対象から外す。
|
void |
setAllowPullTransfer(boolean flag)
他PFからのPull型コンポーネント転送要求に対する可否属性を設定する.
|
void |
setAllowPushTransfer(boolean flag)
他PFへのPush型コンポーネント転送要求に対する可否属性を設定する.
|
void |
setAllowRemoteInvocation(boolean flag)
他PFからのコンポーネント連携要求に対する可否属性を設定する.
|
void |
setComponentID(int id)
コンポーネントIDを設定する。
|
void |
setComponentKey(java.lang.String key)
コンポーネントのキー情報を設定する
|
void |
setComponentKeys(PFMultiLocaleString keys)
全ロケール分のコンポーネントキーを設定する。
|
void |
setComponentPublicName(java.lang.String publicName)
コンポーネント公開名を設定する.
|
void |
setLanguage(java.lang.String name)
スクリプトの言語を設定する。
|
void |
setStoredScript(java.lang.String script)
保存用スクリプト文字列を設定する。
|
void |
setVariable(java.lang.String name,
java.lang.Object obj)
実行中のスクリプト環境に変数を設定する。
|
void |
setVariableByExecute(java.lang.String name,
java.lang.String value)
実行中の環境で変数を設定するスクリプトを作成して実行する。
|
void |
writeXML(PFXMLGenerator out)
コンポーネントのXML出力.
|
public java.lang.String getComponentName()
getComponentName
インタフェース内 PFComponent
PFComponent.getComponentName()
public java.lang.String getComponentKey()
getComponentKey
インタフェース内 PFComponent
PFComponent.getComponentKey()
public void setComponentKey(java.lang.String key)
setComponentKey
インタフェース内 PFComponent
key
- 設定するコンポーネントのキーPFComponent.setComponentKey(java.lang.String)
public PFMultiLocaleString getComponentKeys()
public void setComponentKeys(PFMultiLocaleString keys)
keys
- 全ロケール分のコンポーネントキーpublic int getComponentID()
getComponentID
インタフェース内 PFComponent
PFComponent.getComponentID()
public void setComponentID(int id)
PFComponentBus
から設定される。
各コンポーネント内では操作しないこと。setComponentID
インタフェース内 PFComponent
id
- 設定するコンポーネントIDPFComponent.setComponentID(int)
public java.lang.String getComponentString()
getComponentString
インタフェース内 PFComponent
PFComponent.getComponentString()
public java.lang.String getComponentPublicName()
getComponentPublicName
インタフェース内 PFComponent
public void setComponentPublicName(java.lang.String publicName) throws PFComponentException
setComponentPublicName
インタフェース内 PFComponent
publicName
- 設定するコンポーネント公開名PFComponentException
- 規約に反する名前が設定されようとした場合public boolean isAllowRemoteInvocation()
isAllowRemoteInvocation
インタフェース内 PFComponent
public void setAllowRemoteInvocation(boolean flag)
setAllowRemoteInvocation
インタフェース内 PFComponent
flag
- コンポーネント連携要求に対する可否public boolean isAllowPullTransfer()
isAllowPullTransfer
インタフェース内 PFComponent
public void setAllowPullTransfer(boolean flag)
setAllowPullTransfer
インタフェース内 PFComponent
flag
- Pull型コンポーネント転送要求に対する可否public boolean isAllowPushTransfer()
isAllowPushTransfer
インタフェース内 PFComponent
public void setAllowPushTransfer(boolean flag)
setAllowPushTransfer
インタフェース内 PFComponent
flag
- Push型コンポーネント転送要求に対する可否public java.util.Iterator getPFActionListenerList()
getPFActionListenerList
インタフェース内 PFActionEventSource
public void addPFActionListener(PFActionListener lis)
addPFActionListener
インタフェース内 PFActionEventSource
lis
- 追加対象イベントリスナpublic void removePFActionListener(PFActionListener lis)
removePFActionListener
インタフェース内 PFActionEventSource
lis
- 削除対象イベントリスナprotected void firePFActionPerformed(PFActionEvent event)
event
- アクションイベントpublic java.util.Iterator getPFProcessTerminateListenerList()
getPFProcessTerminateListenerList
インタフェース内 PFProcessTerminateEventSource
public void addPFProcessTerminateListener(PFProcessTerminateListener lis)
addPFProcessTerminateListener
インタフェース内 PFProcessTerminateEventSource
lis
- 追加対象イベントリスナpublic void removePFProcessTerminateListener(PFProcessTerminateListener lis)
removePFProcessTerminateListener
インタフェース内 PFProcessTerminateEventSource
lis
- 削除対象イベントリスナprotected void firePFProcessTerminated(PFProcessTerminateEvent event)
event
- 処理完了イベントpublic void localeUpdated()
localeUpdated
インタフェース内 PFComponent
PFComponent.localeUpdated()
public void readXML(PFXMLLoader in)
readXML
インタフェース内 PFXMLSerializable
in
- XML入力ユーティリティpublic void writeXML(PFXMLGenerator out) throws java.io.IOException
writeXML
インタフェース内 PFXMLSerializable
out
- XML出力ユーティリティjava.io.IOException
public void fireEvent(int eventNo)
eventNo
- イベント番号public void fireEvent(int eventNo, java.lang.Object data)
eventNo
- イベント番号data
- イベント内包データpublic java.lang.Object evaluate(java.lang.String script) throws PFComponentException
script
- 文字列PFComponentException
public void execute(java.lang.String script) throws PFComponentException
script
- 文字列PFComponentException
public java.lang.Object evaluate() throws PFComponentException
public void execute() throws PFComponentException
public void clear() throws PFComponentException
public void setVariable(java.lang.String name, java.lang.Object obj) throws PFComponentException
name
- 変数名obj
- 値PFComponentException
public java.lang.Object getVariable(java.lang.String name) throws PFComponentException
name
- 変数名PFComponentException
public void setVariableByExecute(java.lang.String name, java.lang.String value) throws PFComponentException
name
- 変数名value
- 値を表す文字列PFComponentException
- 実行エラーpublic java.lang.Object evaluateRuleTable(PFObjectTable table, boolean all) throws PFComponentException
table
- ルールテーブルall
- 全ルールを実行する場合truePFComponentException
- 実行エラーpublic java.lang.String getLanguage()
public void setLanguage(java.lang.String name)
name
- 言語名public void setStoredScript(java.lang.String script)
script
- 文字列public java.lang.String getStoredScript()