package gr.cite.annotation.authorization; import gr.cite.commons.web.authz.policy.AuthorizationRequirement; import java.util.Arrays; import java.util.HashSet; import java.util.Set; public class AffiliatedAuthorizationRequirement implements AuthorizationRequirement { private final Set requiredPermissions; private final boolean matchAll; public AffiliatedAuthorizationRequirement(Set requiredPermissions) { this(false, requiredPermissions); } public AffiliatedAuthorizationRequirement(String... requiredPermissions) { this(false, requiredPermissions); } public AffiliatedAuthorizationRequirement(boolean matchAll, Set requiredPermissions) { this.matchAll = matchAll; this.requiredPermissions = requiredPermissions; } public AffiliatedAuthorizationRequirement(boolean matchAll, String... requiredPermissions) { this.requiredPermissions = new HashSet<>(); this.matchAll = matchAll; this.requiredPermissions.addAll(Arrays.stream(requiredPermissions).distinct().toList()); } public Set getRequiredPermissions() { return requiredPermissions; } public boolean getMatchAll() { return matchAll; } }