변수 초기화 및 액세스

이 예제는 규칙 세트, 규칙 블록 또는 규칙 변수를 초기화하고 여기에 액세스할 수 있는 방법을 보여줍니다.

변수는 규칙 세트, 규칙 블록 또는 규칙 레벨에서 정의할 수 있습니다. 변수에 액세스하려면 먼저 초기화 표현식을 사용하여 초기화되어야 합니다. 다음 표현식은 이름이 각각 hostsList 및 hostsString인 두 개의 변수를 초기화합니다.
<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>