Bonjour,
J'aimerai écrire un algorithme dans un programme à la base d'un fichier XML qui représente un moteur de regles.
Serait ce possible de definir un structure de données basée sur ce moteur qui peut aussi être traduit en fichier JSON.
Les solutions dont j'ai pensé sont :
- Definir une structure java.ici le probleme est la variance du moteur de regles
- Interpreter le code JSON chargé.Du coup j'ai du mal à trouver l'algorithme qui peut le faire et la bonne bibiotheque JAVA
J'aimerai avoir une idée pour résoudre ce type de problème ou existe t-il des cas similaires?
Des exemple du moteur de règles:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 <!-- Global rule for lunch: activate for public holiday when OT start time is < 12:30 and end time > 12:30 --> <rule result="true"> <and> <condition field="day" value="holiday" operator="eq"/> <condition field="start-time" value="12:30" operator="lteq"/> <condition field="end-time" value="12:30" operator="gteq"/> </and> </rule> <!-- Global rule for dinner: activate for either weekday or public holiday, when OT end time is > 19:00 or (OT start time > 06:00 and OT end time < 06:00 the next day) --> <rule result="true"> <and> <or> <condition field="day" value="normal" operator="eq"/> <condition field="day" value="holiday" operator="eq"/> </or> <or> <condition field="end-time" value="19:00" operator="gteq"/> <and> <condition field="start-time" value="06:00" operator="gt"/> <condition field="end-time" value="06:00" operator="lt"/> </and> </or> </and> </rule> <!-- Global rule for inbound transport: - activate for either weekend or public holiday; any time - activate for week day when OT start time <= 07:00 --> <rule result="true"> <or> <condition field="day" value="holiday" operator="eq"/> <condition field="day" value="week-end" operator="eq"/> <and> <condition field="day" value="normal" operator="eq"/> <condition field="start-time" value="07:00" operator="lteq"/> </and> </or> </rule>
Partager