[rules-users] Comparing names
Ian Spence
ianspence at gmail.com
Fri May 15 03:03:20 EDT 2009
Wolfgang and all,
Your suggestion did work. Thank you for that. I am learning more as I go
along.
I am thinking of another approach now. To populate working memory with a
Set of all names "allNames"; call fireAllRules; then in the DRL, for each
Title compare Proprietor names (set) with "allNames".
How can I compare 2 sets like this in a DRL ?
Ian Spence
2009/5/14 Wolfgang Laun <wolfgang.laun at gmail.com>
> Assuming that your facts are structured as the indentation suggests, I
> would solve this using a technique you could call "virtual field". So, if a
> fact object has fields
> String title
> List<PropGroup> pgList
>
> and a PropGroup has fields
> String name
> List<String> pList
>
> I would not try to get at the embedded data from the objects contained
> within List<PropGroup>. Rather, I'd add a couple of getters to your Fact
> class, each of which would return a Set<String> computed from the contained
> List<PropGroup>. Then the rule simply becomes
>
> rule "check-same"
> when
> $p1 : Fact( $t1 : title, $g1 : groupNames, $p1 : propNames )
> $p2 : Fact( this != $p1, $t2 : title, ( groupNames != $g1 ||
> propNames != $p1 ) )
> then
> System.out.println( "mismatch " + $t1 + " and " + $t2 );
> end
>
> Notice that this won't find the odd-man-out; it will fire twice for each
> unequal pair.
>
> -W
>
>
> 2009/5/14 Ian Spence <ianspence at gmail.com>
>
>> Hello all,
>>
>> I am new to Drools…
>>
>>
>>
>> I have a scenario
>>
>>
>>
>> Each fact object will have the structure:
>>
>>
>>
>> Title
>>
>> Proprietor Group
>>
>> Proprietor Name
>>
>>
>>
>> E.g.
>>
>> 2100-100
>>
>> J2 ½ share
>>
>> SMITH, JOHN
>>
>> JONES, FRED
>>
>> T ½ share
>>
>> BROWN, CHARLIE
>>
>> 2100-101
>>
>> J2 ½ share
>>
>> BROWN, CHARLIE
>>
>> JONES, FRED
>>
>> T ½ share
>>
>> SMITH, JOHN
>>
>> 2100-102
>>
>> T ½ share
>>
>> BROWN, CHARLIE
>>
>> J2 ½ share
>>
>> JONES, FRED
>>
>> SMITH, JOHN
>>
>>
>>
>> The group names and the proprietor names must be the same across each
>> Title. The scenario above is a valid case. A failed case would result for
>> Title 2100-100 if we add an extra Proprietor name e.g. WHITE, MARY.
>>
>>
>>
>> I anticipate having one rule to cater for this. I am hedging towards the
>> ‘collect’ operator but cannot get a clear picture on how to implement it.
>>
>>
>> --
>> Regards,
>> Ian Spence
>>
>>
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
--
Regards,
Ian Spence
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20090515/f53b79c2/attachment.html
More information about the rules-users
mailing list