private void filterAnalyticsGroups(
            IGroupMember groupMember, JsonNode config, Map<String, Boolean> isMemberCache) {
        if (config == null) {
            return;
        }

        final JsonNode dimensionGroups = config.get("dimensionGroups");
        if (dimensionGroups == null) {
            return;
        }

        for (final Iterator<JsonNode> groupItr = dimensionGroups.elements(); groupItr.hasNext(); ) {
            final JsonNode group = groupItr.next();

            final JsonNode valueNode = group.get("value");
            if (valueNode == null) {
                continue;
            }

            final String groupName = valueNode.asText();

            Boolean isMember = isMemberCache.get(groupName);
            if (isMember == null) {
                isMember = isMember(groupMember, groupName);
                isMemberCache.put(groupName, isMember);
            }

            if (!isMember) {
                groupItr.remove();
            }
        }
    }
private void filterAnalyticsGroups ( IGroupMember groupMember , JsonNode config , Map < String , Boolean > isMemberCache ) { if ( config == null ) { return ; } final JsonNode dimensionGroups = config . get ( "dimensionGroups" ) ; if ( dimensionGroups == null ) { return ; } for ( final Iterator < JsonNode > groupItr = dimensionGroups . elements ( ) ; groupItr . hasNext ( ) ; ) { final JsonNode group = groupItr . next ( ) ; final JsonNode valueNode = group . get ( "value" ) ; if ( valueNode == null ) { continue ; } final String groupName = valueNode . asText ( ) ; Boolean isMember = isMemberCache . get ( groupName ) ; if ( isMember == null ) { isMember = isMember ( groupMember , groupName ) ; isMemberCache . put ( groupName , isMember ) ; } if ( ! isMember ) { groupItr . remove ( ) ; } } }
Remove groups from the AnalyticsConfig that the current user is not a member of