package org.jboss.seam.security.permission; import java.util.HashSet; import java.util.Set; /** * Used to assert permission check requirements into a StatefulSession when evaluating * a @Restrict expression. The consequence of the rule is responsible for * granting the permission. * * @author Shane Bryzak */ public class PermissionCheck { private Object resource; private String permission; private boolean granted; private Set<String> requirements; public PermissionCheck(Object resource, String permission) { this.resource = resource; this.permission = permission; granted = false; } public Object getResource() { return resource; } public String getPermission() { return permission; } public void require(String requirement) { if (requirements == null) { requirements = new HashSet<String>(); } requirements.add(requirement); } public void grant() { this.granted = true; } public void revoke() { this.granted = false; } public boolean isGranted() { return granted; } public boolean hasRequirements() { return requirements != null && requirements.size() > 0; } public Set<String> getRequirements() { return requirements; } }