[rules-users] Filtering inside the LHS

Hezi Stern hezis at delegatecom.com
Wed Feb 22 22:38:53 EST 2012


Hi All,

 

I am seeking some kind of filtering (if statement) inside the LHS.

I have the following example rule (note: $attributeFilteredSentences and
$cmdescriptor are defined in the extends rule which is not presented):

 

rule " choose message sentence example" extends " attributeFilteredSentences
collection"

      when                                            

 


                              SContextState(state == SContextState.ONE)

                                    

            $sentences:       ArrayList()

                                    from collect (Sentences.Sentence(

 
descriptor.meanings.meaning == $cmdescriptor.meanings.meaning

                                                                     ) from
$attributeFilteredSentences)


            

      then

            logger.info("RULE: entered rule: "+drools.getRule().getName());

 

//some logic.

 

end

 

as can be seen I am filtering sentences based on the meanings, and the
meaning collection must be identical as in $cmdescriptor (this is the case
when SContextState.ONE)

 

Now to my question: I have cases ((this is the case when SContextState.TWO)
where I do not need exact validation but rather superset of (for this I have
a supersetOf operator implemented)

I would like to avoid duplicating  this rule (as I have similar condition in
many other rules) and being able to filter once with "==" and once with
"supersetOf" depending on the SContextState.

 

Any ideas how to do this?

 

Thanks,

Hezi

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20120223/763561e1/attachment.html 


More information about the rules-users mailing list