X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=libjava%2Fjava%2Fsecurity%2FBasicPermission.java;fp=libjava%2Fjava%2Fsecurity%2FBasicPermission.java;h=0000000000000000000000000000000000000000;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=7e7d09db8e515ec15f597b2a4a8d1883b2c9c35d;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/libjava/java/security/BasicPermission.java b/libjava/java/security/BasicPermission.java deleted file mode 100644 index 7e7d09db..00000000 --- a/libjava/java/security/BasicPermission.java +++ /dev/null @@ -1,260 +0,0 @@ -/* BasicPermission.java -- Implements a simple named permission. - Copyright (C) 1998, 1999 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -02111-1307 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - -package java.security; - -import java.io.Serializable; -import java.util.Hashtable; -import java.util.Enumeration; - -/** - * This class implements a simple model for named permissions without an - * associated action list. That is, either the named permission is granted - * or it is not. - *

- * It also supports trailing wildcards to allow the - * easy granting of permissions in a hierarchical fashion. (For example, - * the name "org.gnu.*" might grant all permissions under the "org.gnu" - * permissions hierarchy). The only valid wildcard character is a '*' - * which matches anything. It must be the rightmost element in the - * permission name and must follow a '.' or else the Permission name must - * consist of only a '*'. Any other occurrence of a '*' is not valid. - *

- * This class ignores the action list. Subclasses can choose to implement - * actions on top of this class if desired. - * - * @version 0.1 - * - * @author Aaron M. Renn (arenn@urbanophile.com) - */ -public abstract class BasicPermission extends java.security.Permission - implements Serializable - // FIXME extends with fully qualified classname as workaround for gcj 3.0.4 -{ - /** - * This method initializes a new instance of BasicPermission - * with the specified name. If the name contains an illegal wildcard - * character, an exception is thrown. - * - * @param name The name of this permission. - * - * @exception IllegalArgumentException If the name contains an invalid wildcard character - * @exception NullPointerException If the name is null - */ - public BasicPermission(String name) - throws IllegalArgumentException, NullPointerException - { - super(name); - - if (name.indexOf("*") != -1) - { - if (!name.endsWith(".*") && !name.equals("*")) - throw new IllegalArgumentException("Bad wildcard: " + name); - - if (name.indexOf("*") != name.lastIndexOf("*")) - throw new IllegalArgumentException("Bad wildcard: " + name); - } - } - - /** - * This method initializes a new instance of BasicPermission - * with the specified name. If the name contains an illegal wildcard - * character, an exception is thrown. The action list passed to this - * form of the constructor is ignored. - * - * @param name The name of this permission. - * @param actions The list of actions for this permission - ignored in this class. - * - * @exception IllegalArgumentException If the name contains an invalid wildcard character - * @exception NullPointerException If the name is null - */ - public BasicPermission(String name, String actions) - throws IllegalArgumentException, NullPointerException - { - // ignore actions - this(name); - } - - /** - * This method tests to see if the specified permission is implied by - * this permission. This will be true if the following conditions are met: - *

- *

- * - * @param perm The Permission object to test against. - * - * @return true if the specified permission is implied by this one or false otherwise. - */ - public boolean implies(Permission perm) - { - if (!(perm instanceof BasicPermission)) - return false; - - String otherName = perm.getName(); - String name = getName(); - - if (name.equals(otherName)) - return true; - - int last = name.length() - 1; - if (name.charAt(last) == '*' - && otherName.startsWith(name.substring(0, last))) - return true; - - return false; - } - - /** - * This method tests to see if this object is equal to the specified - * Object. This will be true if and only if the specified - * object meets the following conditions: - *

- *

- * - * @param obj The Object to test for equality against this object - * - * @return true if the specified Object is equal to this object or false otherwise. - */ - public boolean equals(Object obj) - { - if (!(obj instanceof BasicPermission)) - return (false); - - if (!getName().equals(((BasicPermission) obj).getName())) - return (false); - - return (true); - } - - /** - * This method returns a hash code for this permission object. The hash - * code returned is the value returned by calling the hashCode - * method on the String that is the name of this permission. - * - * @return A hash value for this object - */ - public int hashCode() - { - return (getName().hashCode()); - } - - /** - * This method returns a list of the actions associated with this - * permission. This method always returns the empty string ("") since - * this class ignores actions. - * - * @return The action list. - */ - public String getActions() - { - return (""); - } - - /** - * This method returns an instance of PermissionCollection - * suitable for storing BasicPermission objects. This returns - * be a sub class of PermissionCollection - * that allows for an efficient and consistent implementation of - * the implies method. The collection doesn't handle subclasses - * of BasicPermission correctly; they must override this method. - * - * @return A new empty PermissionCollection object. - */ - public PermissionCollection newPermissionCollection() - { - return new PermissionCollection() - { - Hashtable permissions = new Hashtable(); - boolean allAllowed = false; - - public void add(Permission permission) - { - if (isReadOnly()) - throw new IllegalStateException("readonly"); - - BasicPermission bp = (BasicPermission) permission; - String name = bp.getName(); - if (name.equals("*")) - allAllowed = true; - permissions.put(name, bp); - } - - public boolean implies(Permission permission) - { - if (!(permission instanceof BasicPermission)) - return false; - - if (allAllowed) - return true; - - BasicPermission toImply = (BasicPermission) permission; - String name = toImply.getName(); - if (name.equals("*")) - return false; - - int prefixLength = name.length(); - if (name.endsWith("*")) - prefixLength -= 2; - - while (true) - { - if (permissions.get(name) != null) - return true; - - prefixLength = name.lastIndexOf('.', prefixLength); - if (prefixLength < 0) - return false; - name = name.substring(0, prefixLength + 1) + '*'; - } - } - - public Enumeration elements() - { - return permissions.elements(); - } - }; - } -}