]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - libjava/java/security/Permissions.java
Imported gcc-4.4.3
[msp430-gcc.git] / libjava / java / security / Permissions.java
diff --git a/libjava/java/security/Permissions.java b/libjava/java/security/Permissions.java
deleted file mode 100644 (file)
index 9356c10..0000000
+++ /dev/null
@@ -1,270 +0,0 @@
-/* Permissions.java -- A collection of permission collections
-   Copyright (C) 1998, 2001 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;
-import java.util.NoSuchElementException;
-
-/**
- * This class is a heterogeneous collection of permissions.  It is 
- * organized as a collection of <code>PermissionCollection</code>'s stored
- * in a hashtable.  Each individual <code>PermissionCollection</code>
- * contains permissions of a single type.  If a specific type of 
- * <code>Permission</code> does not provide a collection type to use
- * via its <code>newPermissionCollection</code> method, then a default
- * collection type which stores its permissions in a hash table will be
- * used.
- *
- * @version 0.0
- *
- * @author Aaron M. Renn (arenn@urbanophile.com)
- */
-public final class Permissions
-  extends PermissionCollection
-  implements Serializable
-{
-  /**
-   * Holds instances of <code>AllPermission</code>.
-   */
-  private PermissionCollection allPermission;
-
-  /**
-   * This is the <code>Hashtable</code> that contains our collections.
-   */
-  Hashtable perms = new Hashtable();
-
-  /**
-   * This method initializes a new instance of <code>Permissions</code>.
-   */
-  public Permissions()
-  {
-  }
-
-  /**
-   * This method adds a new <code>Permission</code> to this collection.  It
-   * will be stored in a <code>PermissionCollection</code> of the appropriate
-   * type, as determined by calling <code>newPermissionCollection</code> on
-   * the specified permission (if an appropriate collection does not already
-   * exist).  If this object does not specify a particular type of collection,
-   * a default collection which stores in permissions in a hash table will
-   * be used.
-   *
-   * @param perm The <code>Permission</code> object to be added to this collection.
-   *
-   * @exception SecurityException If this collection is marked as read only.
-   * @exception IllegalArgumentException If the specified <code>Permission</code> cannot be added to this collection
-   */
-  public void add(Permission perm)
-    throws SecurityException, IllegalArgumentException
-  {
-    if (isReadOnly())
-      throw new SecurityException("PermissionCollection is read only");
-
-    if (perm instanceof AllPermission)
-      {
-       if (allPermission == null)
-         {
-           allPermission = new
-             DefaultPermissionCollection("java.security.AllPermission");
-
-           perms.put("java.security.AllPermission", allPermission);
-         }
-      }
-    else
-      {
-       Object obj = perms.get(perm.getClass().getName());
-       if (obj != null)
-         {
-           if (!(obj instanceof PermissionCollection))
-             throw new RuntimeException("Internal error in Permissions");
-
-           ((PermissionCollection) obj).add(perm);
-         }
-       else
-         {
-           PermissionCollection pc = perm.newPermissionCollection();
-           if (pc == null)
-             pc = new DefaultPermissionCollection(perm.getClass().getName());
-
-           pc.add(perm);
-
-           perms.put(perm.getClass().getName(), pc);
-         }
-      }
-  }
-
-  /**
-   * This method tests whether or not the specified <code>Permission</code>
-   * is implied by this <code>PermissionCollection</code>.
-   *
-   * @param perm The <code>Permission</code> to test.
-   *
-   * @return <code>true</code> if the specified permission is implied by this <code>PermissionCollection</code>, or <code>false</code> otherwise.
-   */
-  public boolean implies(Permission perm)
-  {
-    if (allPermission != null)
-      return (true);
-
-    Object obj = perms.get(perm.getClass().getName());
-    if (obj == null)
-      return (false);
-
-    if (!(obj instanceof PermissionCollection))
-      return (false);
-
-    return (((PermissionCollection) obj).implies(perm));
-  }
-
-  /**
-   * This method returns an <code>Enumeration</code> which contains a
-   * list of all <code>Permission</code> objects contained in this
-   * collection.
-   *
-   * @return An <code>Enumeration</code> of this collection's elements.
-   */
-  public Enumeration elements()
-  {
-    return new Enumeration()
-    {
-      Enumeration main_enum = perms.elements();
-      Enumeration sub_enum;
-
-      public boolean hasMoreElements()
-      {
-       if (sub_enum == null)
-         if (main_enum == null)
-           return (false);
-         else
-           {
-             if (!main_enum.hasMoreElements())
-               return (false);
-             else
-               {
-                 try
-                   {
-                     PermissionCollection pc =
-                       (PermissionCollection) main_enum.nextElement();
-                     sub_enum = pc.elements();
-                   }
-                 catch (NoSuchElementException e)
-                   {
-                     return (false);
-                   }
-               }
-           }
-       else if (!sub_enum.hasMoreElements())
-         {
-           sub_enum = null;
-           return (hasMoreElements());
-         }
-
-       return (true);
-      }
-
-      public Object nextElement() throws NoSuchElementException
-      {
-       if (!hasMoreElements())
-         throw new NoSuchElementException();
-
-       return (sub_enum.nextElement());
-      }
-    };
-  }
-  
-  static class DefaultPermissionCollection extends PermissionCollection
-    implements Serializable
-  {
-
-    // Type of Permission we can store
-    private Class permcls;
-
-    // Hashtable where we store permissions.
-    private Hashtable perms = new Hashtable();
-
-    DefaultPermissionCollection(String permtype) throws IllegalArgumentException
-    {
-      try
-       {
-         permcls = Class.forName(permtype);
-       }
-      catch(ClassNotFoundException e)
-       {
-         throw new IllegalArgumentException(e.getMessage());
-       }
-    }
-
-    public void add(Permission perm) 
-      throws SecurityException, IllegalArgumentException
-    {
-      if (isReadOnly())
-       throw new SecurityException("PermissionCollection is read only");
-
-      if (!permcls.isInstance(perm))
-       throw new IllegalArgumentException("Wrong permission type: " + 
-                                          perm.getClass().getName());
-
-      if (perms.get(perm.getName()) != null)
-       throw new IllegalArgumentException("Duplicate permission: " +
-                                          perm.getName());
-
-      perms.put(perm.getName(), perm);
-    }
-
-    public boolean implies(Permission perm)
-    {
-      Object obj = perms.get(perm.getName());
-      if (obj == null)
-       return(false);
-
-      if (!(obj instanceof Permission))
-       return(false);
-
-      Permission p = (Permission)obj;
-
-      return(p.implies(perm));
-    }
-
-    public Enumeration elements()
-    {
-      return(perms.elements());
-    }
-  }
-}