Initialisation et accès à des variables

Cet exemple indique comment vous pouvez initialiser des variables de jeu de règles, bloc de règles ou règle, et y accéder par la suite.

Une variable peut être définie au niveau du jeu de règles, d'un bloc de règles ou d'une règle. Avant d'être accessible, elle doit être initialisée dans une expression d'initialisation. L'expression suivante initialise deux variables, l'une nommée hostsList et l'autre 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>
L'accès à toutes les variables s'effectue au moyen des expressions. L'exemple suivant montre comment accéder aux variables hostsList et hostsString, initialisées dans l'exemple précédent, au moyen d'une expression contenue dans une action de réponse à la règle. Dans cet exemple, hostsList est modifiée et hostsString reçoit une nouvelle valeur.
<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>