Sometimes this is indeed not clear, so I will try to explain here. Drools uses MVEL to resolve some expressions and semantic code. Although we would like to make it 100% compatible and enable it to use mvel everywhere, that is easier said than done (but we do have someone working on that).
Anytime you want to force Drools to fallback into MVEL (or java, as the other supported dialect) you need to place your code inside an eval(). For some well known situations, Drools does this automatically, but that is not the case with empty. For now, in your case, you could either do: MyGrabBag( someMap != null, someMap.empty == true ) Or if you are using mvel as your rule dialect: MyGrabBag( eval( someMap == empty ) ) []s Edson 2009/8/18 Pegram, Macon <[email protected]> > According to MVEL they’ve added a convenience for checking the > “emptiness” of a value (see: http://mvel.codehaus.org/Value+Tests ) > > > > In MVEL you’d simply write: myMap == empty > > > > This seemed like a MUCH cleaner way to write some of the LHS of the rules, > so I thought I’d try it out. > > > > Given the following rule: > > *rule* "Check Empties - Original" > > *when * > > $grabBag : MyGrabBag(someMap != null) > > *eval* ($grabBag.getSomeMap().size() == 0) > > *then* > > *end* > > * * > > This could be rewritten: > > * * > > *rule* "Check Empties - Simple" > > *when * > > MyGrabBag(someMap == *empty*) > > *then* > > *end* > > > > The IDE (Eclipse 3.4.2 w/ Drools plugin) seems to recognize “empty” is a > keyword (it makes it bold), but the drools compiler in the IDE reports: > BuildError: Unable to create restriction '[VariableRestriction: == empty ]' > for field 'someMap' in the rule 'Check Empties - Simple' > > BuildError: Unable to return Declaration for identifier 'empty' > > > > Am I assuming incorrectly that the LHS is fully MVEL compliant? > > > > _______________________________________________ > rules-users mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users > > -- Edson Tirelli JBoss Drools Core Development JBoss by Red Hat @ www.jboss.com
_______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
