code: @Override
      public Iterator findMemberGroups(IEntityGroup eg) throws GroupsException {
          Map groups = new HashMap();
          IEntityGroup group = null;
          for (Iterator itr = findLocalMemberGroups(eg); itr.hasNext(); ) {
              group = (IEntityGroup) itr.next();
              groups.put(group.getKey(), group);
          }
  
          String[] memberGroupKeys = getGroupStore().findMemberGroupKeys(eg);
          for (int i = 0; i < memberGroupKeys.length; i++) {
              if (!groups.containsKey(memberGroupKeys[i])) {
                  group = GroupService.findGroup(memberGroupKeys[i]);
                  if (group != null) {
                      groups.put(group.getKey(), group);
                  }
              }
          }
          return groups.values().iterator();
      }
docs: Returns member groups for the <code>IEntityGroup</code>. First get the member groups that are
  local to this service. Then retrieve the keys of all of the member groups and ask the
  GroupService to find the groups we do not yet have.
  
  @param eg IEntityGroup