public PrincipalIterator getPrincipals(int searchType) {
PrincipalIterator it;
switch (searchType) {
case PrincipalManager.SEARCH_TYPE_GROUP:
it = new PrincipalIteratorAdapter(Collections.singletonList(EveryonePrincipal.getInstance()));
break;
case PrincipalManager.SEARCH_TYPE_NOT_GROUP:
Set<Principal> set = new HashSet<Principal>(principals.values());
set.remove(EveryonePrincipal.getInstance());
it = new PrincipalIteratorAdapter(set);
break;
case PrincipalManager.SEARCH_TYPE_ALL:
it = new PrincipalIteratorAdapter(principals.values());
break;
// no default
default:
throw new IllegalArgumentException("Unknown search type " + searchType);
}