[rules-users] How to write constraint about a Map inside a Map?

Felipe Piccolini felipe.piccolini at bluesoft.cl
Tue Jul 24 19:31:15 EDT 2007


Suppouse I have a Map attribute and one of the values is another  
Map...how can I check a member of the inner Map?

class MyFact{
      Map map;
      public MyFact(){
            this.map = new HashMap();
      }

      ....setter and getter...

}

-- test --
MyFact myFact = new MyFact();

Map innerMap = new HashMap();
innerMap.put("innerKey", new String("InnerValue"));

Map map = new HashMap();
map.put("mapKey", innerMap);

myFact.setMap(map);

.... set the RuleBase and insert myFact as a fact for the  
WorkingMemory...

-------

Now... how should I write the rule to check the innerKey ??

rule "test InnerMap"
      when
            $mf: MyFact( map['mapKey']['innerKey'] ==  
"InnerValue" ) // doesnt work...
     ....

            $mf: MyFact( map['mapKey'].this['innerKey'] ==  
"InnerValue" ) // doesnt work...
	   $mf: MyFact( map['mapKey'].['innerKey'] == "InnerValue" ) //  
doesnt work...
	   $mf: MyFact( $innerMap: map['mapKey'], $innerMap['innerKey'] ==  
"InnerValue" ) // doesnt work...
            $mf: MyFact( $innerMap: map['mapKey'] -> ($innerMap 
['innerKey'] == "InnerValue" )) // doesnt work...


Thanks.

Felipe Piccolini M.
felipe.piccolini at bluesoft.cl




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20070724/71cbf353/attachment.html 


More information about the rules-users mailing list