public static Set<AnonymousId> extractAnonymousIds(Role role) { if(role instanceof SimpleRole) { return ((SimpleRole) role).getSimpleAnonymousIds(); } else if(role instanceof RoleLink) { return extractAnonymousIds(role.resolve()); } else if(role instanceof ListRole) { Set<AnonymousId> result = new HashSet<>(); ((ListRole) role).getRoles().forEach(r -> result.addAll(extractAnonymousIds(r))); return result; } return null; }