/*
* File: EditablePermissions.java
* Author: Daniel Rogers
* Created on Feb 20, 2008
*
*/
package dan.security.acl;
import java.security.PermissionCollection;
import java.security.Permission;
import java.util.Vector;
import java.util.Enumeration;
import java.util.List;
/**
* A simple PermissionCollection backed by a Vector (so it
* is thread safe). Methods are provided to both add and
* remove permissions from this collection (unlike the standard
* Permissions object)
*
* @author dan.rogers
*/
public class EditablePermissions extends PermissionCollection {
Vector permissions;
// ----------------------------------------------- Constructors
public EditablePermissions() {
permissions = new Vector();
}
// --------------------------------------------- Implementation
public void add(Permission permission) {
permissions.add(permission);
}
public void remove(Permission permission) {
permissions.remove(permission);
}
public void clear() {
permissions.clear();
}
public Enumeration elements() {
return permissions.elements();
}
public List getPermissions() {
return permissions;
}
/**
* Returns true if any of the permissions in the collectin imply the
* given permission.
*/
public boolean implies(Permission permission) {
Enumeration e = permissions.elements();
while (e.hasMoreElements()) {
Permission p = (Permission)e.nextElement();
if (p.implies(permission))
return true;
}
return false;
}
}