外部モジュールおよびオブジェクトのインポートとアクセス

この例は、式から外部コード (Java™ クラスなど) および外部オブジェクトにアクセス可能にする方法を示します。外部オブジェクトとは、アプリケーションが式と通信するために作成するオブジェクトのことです。

式から外部コードにアクセスする前に、その外部コードを式からアクセス可能にしなければなりません。

インポートは、式で外部コードにアクセス可能にするための、プログラム言語固有の方法です。<import> エレメントには、ルール内の他の式で使用できるようインポートする外部モジュール (Java クラスなど) を指定する、特別な種類の式が含まれています。インポートは、ルール・セット・レベルまたはルール・ブロック・レベルで定義できます。

以下の <import> エレメントには、他の式から参照できる StaticHelper クラスおよび Queue クラスをインポートする、Java プログラミング 言語で記述された式が含まれています。
<import expressionLanguage="java">
	import com.ibm.act.sample.StaticHelper;
	import com.ibm.act.test.Queue;
</import>

import ステートメントではクラスの絶対パス名を使用する必要はありませんが、コンパイル時間を短縮するには絶対パス名を指定してください。例えば、 Java クラスを com.ibm.act.sample.*com.ibm.act.* ではなく、com.ibm.act.sample.StaticHelper と指定します。

静的メソッドへのアクセス

以下の例では、StaticHelper クラスのインポート後に、ルール応答アクション内の式でこのクラスがどのように参照されるかを示します。
<onDetection>
	<action expressionLanguage="java">
		StaticHelper.pageAdministrator("Too many login attempts for " + act_event.getAttribute("userID"));
	</action>
</onDetection>

オブジェクトのインスタンス・メソッドへのアクセス

以下の例では、 Queue クラスのインポート後に、ルール応答アクション内の式でこのクラスがどのように参照されるかを示します。 この例では、OutputQueueOne という名前を持つ Queue タイプの外部オブジェクトが取得され、特定のキューにイベントを書き込むために使用されます。
<onDetection>
	<action expressionLanguage="java">
		Queue myQueue = (Queue)act_lib.getExternalContext("OutputQueueOne");
		myQueue.enqueue(act_event);
	</action>
</onDetection>