public synchronized void add(Permission permission) {
if (!(permission instanceof MBeanServerPermission)) {
final String msg =
"Permission not an MBeanServerPermission: " + permission;
throw new IllegalArgumentException(msg);
}
if (isReadOnly())
throw new SecurityException("Read-only permission collection");
MBeanServerPermission mbsp = (MBeanServerPermission) permission;
if (collectionPermission == null)
collectionPermission = mbsp;
else if (!collectionPermission.implies(permission)) {
int newmask = collectionPermission.mask | mbsp.mask;
collectionPermission = new MBeanServerPermission(newmask);
}
}
|