All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.osgi.internal.permadmin.PermissionsHash Maven / Gradle / Ivy

Go to download

AspectJ tools most notably contains the AspectJ compiler (AJC). AJC applies aspects to Java classes during compilation, fully replacing Javac for plain Java classes and also compiling native AspectJ or annotation-based @AspectJ syntax. Furthermore, AJC can weave aspects into existing class files in a post-compile binary weaving step. This library is a superset of AspectJ weaver and hence also of AspectJ runtime.

There is a newer version: 1.9.22.1
Show newest version
/*******************************************************************************
 * Copyright (c) 2008, 2016 IBM Corporation and others.
 *
 * This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.osgi.internal.permadmin;

import java.security.Permission;
import java.security.PermissionCollection;
import java.util.Enumeration;
import java.util.Hashtable;

/**
 * A simple Hashtable based collection of Permission objects.
 * 

* The class' .implies method simply scans each permission * individually and asks if the permission should be granted. * No addition semantics is provided by the collection, so it is * not possible to grant permissions whose "grantedness" is * split across multiple stored Permissions. *

* Instances of this class can be used to store heterogeneous * collections of permissions, as long as it is not necessary * to remember when multiple occurances of .equal permissions * are added. * */ class PermissionsHash extends PermissionCollection { private static final long serialVersionUID = 3258408426341284153L; /** * A hashtable to store the elements of the collection. */ Hashtable perms = new Hashtable<>(8); /** * Constructs a new instance of this class. * */ public PermissionsHash() { super(); } /** * Adds the argument to the collection. * * @param perm java.security.Permission * the permission to add to the collection. * @exception IllegalStateException * if the collection is read only. */ @Override public void add(Permission perm) { if (isReadOnly()) { throw new SecurityException(); } perms.put(perm, perm); } /** * Answers an enumeration of the permissions * in the receiver. * * @return Enumeration * the permissions in the receiver. */ @Override public Enumeration elements() { return perms.keys(); } /** * Indicates whether the argument permission is implied * by the permissions contained in the receiver. * * @return boolean * true if the argument permission * is implied by the permissions in the receiver, * and false if it is not. * @param perm java.security.Permission * the permission to check */ @Override public boolean implies(Permission perm) { Permission p = perms.get(perm); if ((p != null) && p.implies(perm)) { return true; } Enumeration permsEnum = elements(); while (permsEnum.hasMoreElements()) { if (permsEnum.nextElement().implies(perm)) { return true; } } return false; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy