Hi, Felipe,

Try this:

    $mf: MyFact( $map : map  )
    eval($map.get("innerKey") == "innerValue");

or you can have a try on the new MVEL diaglect.

Yang


On 7/25/07, Felipe Piccolini <[EMAIL PROTECTED]> wrote:

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.*
[EMAIL PROTECTED]








_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users


_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to