package org.fenixedu.bennu.core.domain; import java.util.Optional; import java.util.Set; import java.util.stream.Stream; import org.fenixedu.bennu.core.domain.groups.PersistentDynamicGroup; import org.fenixedu.bennu.core.domain.groups.PersistentGroup; import org.fenixedu.bennu.core.domain.groups.PersistentUserGroup; import org.fenixedu.bennu.core.groups.Group; public class BennuGroupIndex { public static <T extends PersistentGroup> Stream<T> groupConstant(Class<T> type) { return Bennu.getInstance().getGroupConstantSet().stream().filter(g -> type.isInstance(g)).map(type::cast); } public static Set<PersistentUserGroup> getUserGroups(User user) { return user.getUserGroupSet(); } public static Optional<PersistentDynamicGroup> dynamic(String name) { return Bennu.getInstance().getDynamicSet().stream().filter(g -> g.getName().equals(name)).findAny(); } public static Stream<Group> allDynamicGroups() { return Bennu.getInstance().getDynamicSet().stream().map(PersistentGroup::toGroup); } public static boolean isUserGroupMember(User user, PersistentUserGroup group) { return user.getUserGroupSet().contains(group); } }