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
  • query
  • 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 ne soient pas 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, enfermez-le simplement avec des accents graves, du type :

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

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

Holiday.isTrue()
La dernière modification de cette page a été faite le novembre 22, 2019 à 09:37.
Comments or questions about this documentation? Contact us for support!