public static void calculatePendingGroupDiffs(MitroRequestContext context,Collection<? extends PendingGroup> pendingGroupsList,DBGroup org,Map<String,DBGroup> existingGroups,Map<String,GroupDiff> diffs,Map<String,MemberList> pendingGroupMap,String scope) throws MitroServletException, SQLException {
  assert scope != null || pendingGroupsList.isEmpty();
  for (  PendingGroup pg : pendingGroupsList) {
    AddPendingGroupRequest.MemberList ml=gson.fromJson(pg.memberListJson,AddPendingGroupRequest.MemberList.class);
    assert (null != ml) : "you cannot have a null MemberList";
    for (    String user : ml.memberList) {
      assert Util.isEmailAddress(user) : "invalid email: '" + user + "'";
    }
    pendingGroupMap.put(pg.groupName,ml);
  }
  for (  DBGroup g : org.getAllOrgGroups(context.manager)) {
    if (scope != null && scope.equals(g.getScope())) {
      existingGroups.put(g.getName(),g);
    }
  }
  Set<String> allGroupNames=Sets.union(pendingGroupMap.keySet(),existingGroups.keySet());
  for (  String groupName : allGroupNames) {
    diffGroupPair(context,diffs,groupName,existingGroups.get(groupName),pendingGroupMap.get(groupName));
  }
}

public static void calculatePendingGroupDiffs ( MitroRequestContext context , Collection < ? extends PendingGroup > pendingGroupsList , DBGroup org , Map < String , DBGroup > existingGroups , Map < String , GroupDiff > diffs , Map < String , MemberList > pendingGroupMap , String scope ) throws MitroServletException , SQLException { assert scope != null || pendingGroupsList . isEmpty ( ) ; for ( PendingGroup pg : pendingGroupsList ) { AddPendingGroupRequest . MemberList ml = gson . fromJson ( pg . memberListJson , AddPendingGroupRequest . MemberList . class ) ; assert ( null != ml ) : "you cannot have a null MemberList" ; for ( String user : ml . memberList ) { assert Util . isEmailAddress ( user ) : "invalid email: '" + user + "'" ; } pendingGroupMap . put ( pg . groupName , ml ) ; } for ( DBGroup g : org . getAllOrgGroups ( context . manager ) ) { if ( scope != null && scope . equals ( g . getScope ( ) ) ) { existingGroups . put ( g . getName ( ) , g ) ; } } Set < String > allGroupNames = Sets . union ( pendingGroupMap . keySet ( ) , existingGroups . keySet ( ) ) ; for ( String groupName : allGroupNames ) { diffGroupPair ( context , diffs , groupName , existingGroups . get ( groupName ) , pendingGroupMap . get ( groupName ) ) ; } }
too many inout parameters . todo : change this to use a parameter object
