[rules-users] some pointers for solution

Wolfgang Laun wolfgang.laun at gmail.com
Sun Nov 8 04:46:51 EST 2009


Another proposal, with perhaps more emphasize on "rulishness".

Given
   class Item  { T1 s1;... Tn sn;... }
let's add
   enum Criterium { C1, C2,... Cn; }
   class Request { EnumSet<Criterium> criteria; HashSet<Item> results; }

To launch a request, insert a Request object with an appropriate setting for
criteria. Then, match all Item facts against rules, one for each Ci:

rule "Check C1"
when
    $request : Request( criteria contains Criterium.C1 )
    $item : Item( s1 <op> <value> )     # the constraint defining "valid"
then
    $request.getResults().add( $item );   # no modify!
end

//...same for C2 ... Cn

rule "Return results"
salience -100
when
    $request : Request()
then
    ... send $request.getResults() back to User
    retract( $request );
end

You could have two rules here, one testing for success (getResults().size()
== getCriteria().size()), the other one firing for failure, but it might be
preferable to handle it in the presentation layer.

Although I've used similar approaches, the code here is just off the cuff.
-W

2009/11/8 Wishing Carebear <wishing.carebear at gmail.com>

> Hello:
> There are n selection criteria from s1 .. sn for each item i1.. in. Each
> item can have a subset of criteria which applies to them.
>
> The end user, can choose a subset of criteria like c1 and c5 and only the
> item that has c1 and c5 valid should be returned. For example: if item i1
> and i2 have criterias valid for c1, c2, c5, c6, c8 since the request is only
> for criteria c1 and c5, i1 and i2 must be returned.
>
> Is it possible to write a rule using drools for this requirement.
>
> Thanks for your help and time,
> cabear
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20091108/06948ba0/attachment.html 


More information about the rules-users mailing list