Opérateurs

Les opérateurs permettent de combiner des informations entrantes pour obtenir un résultat. Pour un ensemble d’informations entrantes identiques :

  • Le résultat de l’opération sera toujours identique avec le même opérateur
  • Le résultat de l’opération sera potentiellement différent entre deux opérateurs.

Le résultat obtenu sera toujours booléen : vrai ou faux.

On en distingue deux grandes familles, dont les rôles et les implémentations sont détaillées ci-dessous.

Les opérateurs d’évaluation

Les opérateurs d’évaluation permettent de mettre en relation une ou plusieurs valeur(s) source(s) avec une ou plusieurs éventuelle(s) valeur(s) de référence et d’évaluer un résultat.

Pour obtenir le meilleur fonctionnement, la source doit être issue des beans d’entrée, et la référence d’une constante, ou d’un autre champ des beans d’entrée, etc … La source ne doit pas être une constante.

On distingue plusieurs situations d’évaluation :

  • La source et la référence sont des valeurs uniques.
  • La source est une valeur unique, la référence est une Collection (ou un tableau).
  • La source est une Collection (ou un tableau), la référence est une valeur unique.
  • La source et la référence sont des Collection (ou des tableaux).

Selon l’implémentation, un opérateur peut ne pas prendre en charge toutes les situations possibles.

Les implémentations suivantes pour les valeurs simples sont fournies :

  • BETWEEN : La valeur source doit être comprise entre deux valeurs.
  • CONTAINS : La source doit être une Collection, devant contenir la valeur de référence.
  • EMPTY: La valeur source doit être null ou vide ? Gère les String, Collection, Map, StringBuffer, Arrays, et tout Object avec une méthode « length » ou « size ». La valeur de référence n’est pas acceptée à la compilation.
  • EQ : La valeur source doit être égale à la référence.
  • GT : La valeur source doit être supérieure à la référence.
  • GTE : La valeur source doit être supérieure ou égale à la référence.
  • IN : La référence doit être une Collection, devant contenir la valeur source.
  • LT : La valeur source doit être inférieure à la référence.
  • LTE : La valeur source doit être supérieure ou inférieure à la référence.
  • MATCH : La valeur source doit matcher une expression régulière fournie par la valeur de référence.
  • NE : La valeur source doit être différente de la référence
  • NOTCONTAINS: L’inverse de CONTAINS .
  • NOTEMPTY : L’inverse de EMPTY.
  • NOTIN : L’inverse de IN.
  • NOTMATCH : L’inverse de MATCH.
  • NOTNULL : L’inverse de NULL.
  • NULL : La valeur source doit être null. La valeur de référence n’est pas acceptée à la compilation.

Les implémentations suivantes pour les Collections sont fournies :

  • COLDISJOINED : Les deux collections sont disjointes (aucun élément en commun).
  • COLEQ : Les collections sont équivalentes (indépendamment de l’ordre).
  • COLIN : Equivalent à COLINCLUDED.
  • COLINCLUDED : La source est incluse dans la référence.
  • COLINCLUDES : La référence est incluse dans la source.
  • COLINTERSECTS : Les deux collections ont au moins un élément en commun.
  • COLNE : Les collections ne sont pas équivalentes (indépendamment de l’ordre).
  • COLNOTIN : L’inverse de COLINCLUDED.

Ces opérateurs s’utilisent en association avec la condition EVAL.

Les opérateurs logiques

Les opérateurs logiques permettent d’évaluer le résultat global d’un ensemble de conditions. Ils acceptent en entrée un ensemble de résultats d’évaluations de conditions, c’est-à-dire un ensemble de valeurs booléennes.

Les implémentations suivantes sont fournies :

  • OR : Au moins une condition est vérifiée.
  • AND : Toutes les conditions sont vérifiées.
  • XOR : L’une ou l’autre des conditions est vérifiée (s’utilise avec deux conditions, sinon les résultats peuvent être imprévisibles).
  • VALBETWEEN : Le nombre de conditions vérifiées (ou non vérifiées) est compris entre 2 valeurs.

Ces opérateurs s’utilisent en association avec

  • La condition CONDSET.
  • La condition EVAL en cas d’itération.