Definizione di una variabile

Quando si definisce una variabile, utilizzare la sintassi ILOG ® Rule Language.

Procedura

  • Per definire una variabile di condizione di classe semplice, utilizzare la sintassi seguente nella parte della condizione della regola: variable : ClassName();

    Definisce una variabile di tipo ClassName. Questa variabile è mai null e il suo valore viene visualizzato nella tupla dell'istanza della regola. L'ambito di questa variabile è l'intera regola.

  • Per definire una variabile semplice in una condizione, utilizzare la sintassi seguente nella parte test di una condizione: variable : <value>

    Per utilizzare questa sintassi in una condizione di classe, seguire questo modello: ClassName (variable : <value>). Per utilizzare questa sintassi in una condizione di valutazione, seguire questo pattern: evaluate (variable : <value>). Definisce una variabile che ha il tipo del valore. Il valore della variabile può essere null. L'ambito di questa variabile dipende dalla condizione in cui è definita: se la variabile è definita in una condizione esistenziale, il suo ambito è limitato a questa condizione. Se la variabile è definita in qualsiasi altro tipo di condizione, il relativo ambito è l'intera regola.

  • Per definire una variabile semplice nella parte azione della regola, utilizzare la sintassi seguente: int variable = <value>;

    Definisce una variabile. L'ambito della variabile segue le regole di ambito del linguaggio Java™ .

Esempio

In questo esempio, le variabili del conto e del contratto si riferiscono agli oggetti nella memoria di lavoro, agli oggetti della classe BOM del conto e agli oggetti della classe BOM del contratto. Il saldo è definito come il saldo di un conto nella parte condizione del codice. Allo stesso modo, la scadenza è definita come la data di scadenza del contratto. La variabile b è un esempio di una variabile definita nella parte azione della regola.

when {
   account: Account(balance : getBalance());
   contract: Contract(expiration : getExpirationDate());
}
then {
  int b = balance;
  System.out.println(contract + expiration);
  System.out.println(account + b);
}

Questa regola genera un elenco di tutte le istanze disponibili di ciascun contratto e della relativa data di scadenza e di ciascun account e relativo saldo.