変数の初期化とアクセス

この例は、ルール・セット、ルール・ブロック、またはルール変数を初期化し、アクセスする方法を示します。

変数は、ルール・セット、ルール・ブロック、または ルールの各レベルで定義できます。変数にアクセスするには、初期化式を使用して変数を初期化する必要があります。以下の式は、hostsList および hostsString という 2 つの変数を初期化します。
<variable name="hostsList" dataType="java.util.ArrayList">
  <varInitializer expressionLanguage="java">
    return new ArrayList();
  </varInitializer>
</variable>
<variable name="hostsString" dataType="java.lang.String">
  <varInitializer expressionLanguage="java">
    return new String();
  </varInitializer>
</variable>
すべての変数には式を使用してアクセスします。以下の例は、上記の例で初期化された hostsList 変数および hostsString 変数に、ルール応答アクション内の式を使用してアクセスする方法を示します。この例では、hostsList を変更し、hostsString に新しい値を指定しています。
<onNextEvent>
	<action expressionLanguage="java">
	  String hostname = act_event.getStringAttribute("hostname");
    ArrayList hostsList = (ArrayList)act_lib.getVariable("hostsList");
    hostsList.add(hostname);
    String hostsString = act_lib.getStringVariable("hostsString");
    String newHostString = hostsString + ", " + hostname);
    act_lib.setStringVariable("hostsString", newHostsString);
	</action>
</onNextEvent>