84.2. ファクトのイベントとしての宣言

Java クラスまたは DRL ルールファイルでファクトをイベントとして宣言すると、デシジョンエンジンが複雑なイベント処理中にファクトをイベントとして処理できます。ファクトは、interval-based イベントまたは point-in-time イベントとして宣言できます。interval-based のイベントには持続期間があり、その持続期間が経過するまでデシジョンエンジンのワーキングメモリーで持続します。point-in-time イベントに持続期間はなく、基本的には期間がゼロの interval-based イベントになります。

手順

Java クラスまたは DRL ルールファイルの関連するファクトタイプについては、@role( event ) メタデータタグとパラメーターを入力します。@role メタデータタグは、以下の 2 つの値を受け入れます。

  • fact: (デフォルト) タイプを通常のファクトとして宣言
  • event: タイプをイベントとして宣言

たとえば、以下のスニペットは、株式ブローカーアプリケーションの StockPoint ファクトタイプをイベントとして処理する必要があることを宣言しています。

ファクトタイプをイベントとして宣言

import some.package.StockPoint

declare StockPoint
  @role( event )
end

StockPoint が、既存のクラスではなく DRL ルールファイルで宣言されたファクトタイプである場合は、アプリケーションコードでイベントをインラインで宣言できます。

ファクトタイプをインラインで宣言し、イベントロールに割り当て

declare StockPoint
  @role( event )

  datetime : java.util.Date
  symbol : String
  price : double
end