Un Addon est une classe Java permettant d’effectuer une action unitaire. Elle est décrite par l’interface mère IAddon. Chaque Addon possède un identifiant unique (sous forme de chaîne de caractères) permettant de le référencer en configuration.
MRules accepte six types d’addons :
- Les Accesseurs : ces objets gèrent l’accès aux données (par exemple, récupérer ou positionner la valeur d’une propriété d’une objet Java, ou encore faire une opération mathématique).
Ils sont responsables de transformer les données afin de pouvoir les utiliser correctement (par exemple, les opérations mathématiques nécessitent des nombres) - Les Conditions : ces objets évaluent l’état d’une ou plusieurs données, ou d’une ou plusieurs sous Conditions.
- Les Opérateurs : ces objets permettent d’effectuer des opérations.
Trois types d’opérateurs sont définis :- Les opérateurs logiques : Combinent les résultats de plusieurs Conditions.
- Les opérateurs d’évaluation : Effectuent les évaluation sur les données (comparaisons, égalités, inclusions, …).
- Les opérateurs mathématiques : Effectuent les additions, soustractions, etc … configurées dans les règles.
- Les Exécutables : ces objets permettent d’exécuter une actions. Par exemple, évaluer une condition et selon le résultat exécuter d’autres actions.
- Les Callables : ces objets permettent d’exécuter des règles mutualisées. Ils constituent la base pour le support des fonctions.
- La fabrique de contexte : permet de fabriquer les contextes de compilation et d’exécution adaptés au besoin métier.
Les Addons sont déclarés via un fichier XML nommé « mrules-addons.xml » accessible dans le CLASS_PATH (tous les fichiers portant ce noms sont lus) :
- Soit directement par leur nom de classe.
- Soit via un AddonManager, type d’objet permettant de déclarer en masse des Addons.
Le cœur de la librairie est lui-même un Addon.