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@bluesoft.cl