Algoritmi di diramazione
Di seguito sono descritti gli algoritmi di branch predefiniti.
Algoritmo
|
Descrizione
|
wt.rule.algorithm.BooleanBranch
|
Prende in considerazione un elenco di tre oggetti. Il primo oggetto contenuto in un tag Value deve restituire un valore booleano che indichi all'algoritmo BooleanBranch quale degli altri due oggetti restituire, ciascuno contenuto in un argomento.
|
wt.rule.algorithm.CaseBranch
|
È simile a BooleanBranch, tranne per il fatto che la diramazione si verifica quando un case è TRUE. È presente un argomento per ciascun case oltre a un argomento aggiuntivo che identifica il valore di default se nessun case è TRUE.
|
La sintassi generale per gli algoritmi BooleanBranch è la seguente:
<Value algorithm="wt.rule.algorithm.BooleanBranch">
<Value algorithm="xxx">
:
</Value>
<Arg>yyy</Arg>
<Arg>zzz</Arg>
</Value>
L'algoritmo indicato nel tag
Value annidato (identificato con xxx nel formato) può essere qualsiasi algoritmo valido che restituisca un valore booleano. Uno degli oggetti negli
argomenti (identificati dai tag
Arg e dalle stringhe yyy e zzz) viene utilizzato in base al risultato dell'algoritmo xxx.
La sintassi generale di un algoritmo CaseBranch con tre case è la seguente:
<Value algorithm="wt.rule.algorithm.CaseBranch">
<Value algorithm="xxx1">
:
</Value>
<Arg>yyy1</Arg>
<Value algorithm="xxx2">
:
</Value>
<Arg>yyy2</Arg>
<Value algorithm="xxx3">
:
</Value>
<Arg>yyy3</Arg>
<Arg>yyy4</Arg>
</Value>
Un algoritmo CaseBranch può avere un numero qualsiasi di case. Ogni case dell'algoritmo CaseBranch è costituito da un elemento Value che può essere valutato come TRUE o FALSE e da un argomento immediatamente successivo all'elemento Value. Se l'elemento Value è TRUE, viene utilizzato l'argomento e i tag rimanenti del vincolo non vengono valutati. Se l'elemento Value nel primo case è FALSE, viene valutato il case successivo. La valutazione dei singoli case procede secondo l'ordine con il quale sono riportati nel file fino a quando la valutazione corrente genera un risultato TRUE. Viene utilizzato l'argomento associato al case. Se nessuno dei case specificati è TRUE, viene utilizzato l'ultimo argomento fornito per l'algoritmo CaseBranch.
Nella sintassi generale sopra riportata, i valori che possono essere utilizzati nei tag Arg sono stringhe. Se lo si desidera, i tag Arg possono essere sostituiti da tag Value. L'utilizzo di tag Value annidati in sostituzione dei tag Arg consente di eseguire ulteriori valutazioni all'interno degli argomenti.