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:
- *
- *
BasicPermission
,
- * or a subclass.
- * 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:
- * - *
BasicPermission
, or a subclass.
- * 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();
- }
- };
- }
-}