public int getAnzahl(NamiConnector con, String gruppierungsnummer)
            throws NamiApiException, IOException {

        if (searches.size() < 1) {
            return 0;
        } else if (searches.size() == 1 && filters.isEmpty()) {
            // es gibt nur eine Suchanfrage und keine Filter
            // -> die Anzahl reicht aus
            NamiSearchedValues search = searches.iterator().next();
            search.setGruppierungsnummer(gruppierungsnummer);
            return search.getCount(con);
        } else {
            // Suchanfragen müssen vereinigt werden oder es werden Filter
            // angewendet
            // -> komplette Ergebnismengen notwendig

            // Das HashSet vergleicht die Mitglieder anhand der Mitgliedsnummer,
            // d.h. jedes Mitglied wird auch bei mehreren Tätigkeiten nur einmal
            // gezählt
            Set<NamiMitgliedListElement> searchResults = new HashSet<>();

            // Führe Suchen aus
            for (NamiSearchedValues search : searches) {
                search.setGruppierungsnummer(gruppierungsnummer);
                searchResults.addAll(search.getAllResults(con));
            }

            if (filters.isEmpty()) {
                return searchResults.size();
            } else {
                int count = 0;
                // Teste für jedes Mitglied, ob es von den Filtern akzeptiert
                // wird
                for (NamiMitgliedListElement mgl : searchResults) {
                    boolean filtersOk = true;
                    // Ver-UND-e das Ergebnis aller Filter
                    // (ein Mitglied wird dann hinzugefügt, wenn es von allen
                    // Filtern akzeptiert wird)
                    for (Filter filter : filters) {
                        filtersOk = filtersOk && filter.filter(mgl);
                    }
                    if (filtersOk) {
                        count++;
                    }
                }
                return count;
            }
        }
    }