Inizializzazione e accesso alle variabili

Questo esempio indica come inizializzare e accedere ad una serie di regole, un blocco di regole o a delle variabili di regola.

Una variabile può essere definita al livello della serie di regole, di un blocco di regole o di una regola. Prima di poter accedere a una variabile, essa deve essere inizializzata con un'espressione di inizializzazione. La seguente espressione inizializza due variabili, hostsList e 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>
A tutte le variabili è possibile accedere tramite le espressioni. L'esempio che segue mostra come si accede alle variabili hostsList e hostsString, che sono state inizializzate nell'esempio precedente, tramite un'espressione all'interno di un'azione di risposta di regola. In questo esempio, hostsList viene modificato e a hostsString viene fornito un nuovo valore.
<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>