question: 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 ) ) ; } }
target:  Too many inout parameters. TODO: change this to use a parameter object