Jump to: navigation, search

Utilisation de Drools 5

Drools 5 introduit le concept de mots-clés forts et faibles.

Mots-clés forts

Les mots-clés forts sont réservés; vous ne pouvez pas utiliser de mot-clé fort pour nommer des objets de domaine, des propriétés, des méthodes, des fonctions et d'autres éléments utilisés dans le texte de la règle. La liste suivante de mots-clés forts doit être évitée comme identificateurs lors de l'écriture de règles :

  • true
  • false
  • null

Mots-clés faibles

Les mots clés faibles sont simplement reconnus dans leur contexte, ce qui vous permet d'utiliser ces mots dans n'importe quel emplacement si vous le souhaitez, bien que Genesys recommande de les éviter si possible afin d'éviter toute confusion. Voici la liste des mots-clés faibles :

  • lock-on-active
  • date-effective
  • date-expires
  • no-loop
  • auto-focus
  • activation-group
  • agenda-group
  • ruleflow-group
  • entry-point
  • duration
  • package
  • import
  • dialect
  • salience
  • enabled
  • attributes
  • rule
  • extend
  • when
  • then
  • template
  • requête
  • declare
  • function
  • global
  • eval
  • not
  • in
  • or
  • and
  • exists
  • forall
  • accumulate
  • collect
  • from
  • action
  • reverse
  • result
  • end
  • over
  • init

Vous pouvez utiliser ces mots (forts et faibles) dans un nom de méthode en « camel case », par exemple notSomething() ou accumulateSomething() sans problème particulier.

Échappement de mots-clés forts

Bien que les trois mots-clés forts ci-dessus soient peu susceptibles d'être utilisés dans vos modèles de domaine existants, si vous devez absolument les utiliser en tant qu'identificateurs au lieu de mots-clés, le langage DRL permet d'échapper les mots-clés forts sur le texte des règles. Pour échapper un mot, entourez-le simplement d'accents graves, du type :

Holiday( `true` == "yes" ) // 

Veuillez noter que Drools résoudra la référence à la méthode :

Holiday.isTrue()
This page was last edited on November 22, 2019, at 09:33.
Comments or questions about this documentation? Contact us for support!