Administración especializada > Adecuación de los objetos de negocio > Administración de reglas de inicialización de objetos > Uso de reglas de inicialización de objetos > Algoritmos de reglas > Algoritmos de lógica condicional > Algoritmos de división
  
Algoritmos de división
Los algoritmos de división estándar son de la siguiente manera:
Algoritmo
Descripción
wt.rule.algorithm.BooleanBranch
Toma una lista de tres objetos. Se espera que el primer objeto contenido en una etiqueta Value sea un objeto que devuelva un booleano que indique al algoritmo BooleanBranch cuál de los otros dos objetos, cada uno de ellos contenido en un argumento debe devolver.
wt.rule.algorithm.CaseBranch
Es similar a BooleanBranch, excepto por el hecho de que la división ocurre cuando un caso es VERDADERO. Existe un argumento para cada caso además de un argumento adicional que identifica el establecido por defecto si no hay casos VERDADEROS.
La sintaxis general de los algoritmos BooleanBranch es:
<Value algorithm="wt.rule.algorithm.BooleanBranch">
<Value algorithm="xxx">
:
</Value>
<Arg>yyy</Arg>
<Arg>zzz</Arg>
</Value>
El algoritmo nombrado en la etiqueta Value anidada (identificada con xxx en el formato) puede ser cualquier algoritmo válido que dé como resultado un valor booleano. Uno de los objetos de los argumentos (identificado con las etiquetas Arg y las cadenas yyy y zzz) se utiliza dependiendo del resultado del algoritmo xxx.
La sintaxis general de un algoritmo CaseBranch con tres casos es la siguiente:
<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 puede tener un número de casos indeterminado. Cada caso del algoritmo CaseBranch consiste en un elemento Value que puede evaluarse como VERDADERO o FALSO y un argumento que va inmediatamente después del elemento Value. Si el elemento Value es VERDADERO, se utiliza el argumento y las etiquetas restantes de la restricción no se evalúan. Si el elemento Value del primer caso es FALSO, se evalúa el siguiente caso. La evaluación de cada caso continúa en el orden en que aparecen los casos en el fichero hasta que la evaluación actual produzca un resultado VERDADERO. Se utiliza el argumento asociado con el caso. Si ninguno de los casos especificados es VERDADERO, se utiliza el último argumento proporcionado para el algoritmo CaseBranch.
En la sintaxis general anterior, los valores que el usuario puede utilizar en las etiquetas Arg son cadenas. Opcionalmente, las etiquetas Arg se pueden reemplazar por etiquetas Value. El uso de etiquetas Value anidadas en lugar de etiquetas Arg permite realizar evaluaciones adicionales en los argumentos.