package org.jboss.seam.security.permission;
import java.util.HashSet;
import java.util.Set;
/**
* Used to assert permission requirements into a WorkingMemory when evaluating
* a @Restrict expression. The consequence of the rule is responsible for
* granting the permission.
*
* @author Shane Bryzak
*/
public class PermissionCheck
{
private Object target;
@Deprecated
private String name;
private String action;
private boolean granted;
private Set<String> requirements;
public PermissionCheck(Object target, String action)
{
if (target instanceof String)
{
this.name = (String) target;
}
this.target = target;
this.action = action;
granted = false;
}
public Object getTarget()
{
return target;
}
@Deprecated
public String getName()
{
return name;
}
public String getAction()
{
return action;
}
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;
}
}