drools drl how to do not conditions

mh377 picture mh377 · Jul 26, 2010 · Viewed 13.4k times · Source

I am trying to write a rule in drools drl language where I am want to do something like !(A && B) but it doesnt seem to like the ! operator or the word not. I am struggling to find good documentation on drools

Please see sample code below:

  rule "Test Rule"
   when
      testBean : testBean(!(testList contains "test"  && testList2 contains "test2"))
   then
      testBean.setText( "This is a test" );
   end

I would appreciate any help than anyone can give me

thanks in advance

Answer

mh377 picture mh377 · Jul 27, 2010

It looks like there is an open defect with the not operator

https://jira.jboss.org/browse/JBRULES-2404

Another good article on negation, uses 'neg' or 'naf' instead of 'not'

http://blog.athico.com/search?q=negation

rule "Test Rule"
   when
      testBean : testBean((testList not contains "test"  && testList2 contains "test2"))
   then
      testBean.setText( "This is a test" );
   end