The following section will provide more details on rule (.drl
) syntax. It will form the basis for later examples.
A rule can contain one or many conditions/patterns. For example:
Account( balance == 200 ) Customer( name == "John" )
Code listing 5: Two rule conditions, one for type Account and one for type Customer
Drools will then try to match every Account
object in the session whose balance is equal to 200
with every Customer
whose name is equal to John
. If we have three Account
objects that meet this criteria and two that don't, five Customer
objects that meet this criteria and three that don't, it would create (3+2)*(5+3)=40
possible matches; however, only 3*5=15
of them valid. Meaning that a rule with these two conditions will be executed exactly 15 times.