org.eclipse.equinox.log.LogPermissionCollection Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.eclipse.equinox.supplement Show documentation
Show all versions of org.eclipse.equinox.supplement Show documentation
Supplemental Equinox Functionality
/*******************************************************************************
* Copyright (c) 2009, 2011 IBM Corporation and others
* All rights reserved. This program and the accompanying materials are made
* available under the terms of the Eclipse Public License v1.0 which
* accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
******************************************************************************/
package org.eclipse.equinox.log;
import java.security.Permission;
import java.security.PermissionCollection;
import java.util.Enumeration;
import java.util.NoSuchElementException;
/**
* Stores a set of LogPermission
permissions.
*
* @ThreadSafe
* @see java.security.Permission
* @see java.security.Permissions
* @see java.security.PermissionCollection
* @since 3.7
*/
public final class LogPermissionCollection extends PermissionCollection {
private static final long serialVersionUID = -1955409691185916778L;
LogPermission logPermission;
public void add(Permission permission) {
if (!(permission instanceof LogPermission))
throw new IllegalArgumentException("invalid permission: " + permission); //$NON-NLS-1$
if (isReadOnly())
throw new SecurityException("attempt to add a LogPermission to a readonly LogPermissionCollection"); //$NON-NLS-1$
if (permission != null)
logPermission = (LogPermission) permission;
}
public Enumeration elements() {
return new Enumeration() {
private boolean hasMore = (logPermission != null);
public boolean hasMoreElements() {
return hasMore;
}
public Permission nextElement() {
if (hasMore) {
hasMore = false;
return logPermission;
}
throw new NoSuchElementException();
}
};
}
public boolean implies(Permission permission) {
return logPermission != null && logPermission.implies(permission);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy