From d2f108e266cd19172d664d433e772420e88d1504 Mon Sep 17 00:00:00 2001 From: Bryce McKinlay Date: Fri, 24 May 2002 11:57:40 +0000 Subject: Merge JDK 1.4 java.security changes from classpath. * java/security/AccessControlException.java: Merge from Classpath. * java/security/AccessController.java: Likewise. * java/security/AllPermission.java: Likewise. * java/security/BasicPermission.java: Likewise. * java/security/Certificate.java: Likewise. * java/security/CodeSource.java: Likewise. * java/security/DigestException.java: Likewise. * java/security/DigestOutputStream.java: Likewise. * java/security/DomainCombiner.java: Likewise. * java/security/GeneralSecurityException.java: Likewise. * java/security/Guard.java: Likewise. * java/security/GuardedObject.java: Likewise. * java/security/InvalidAlgorithmParameterException.java: Likewise. * java/security/InvalidKeyException.java: Likewise. * java/security/InvalidParameterException.java: Likewise. * java/security/Key.java: Likewise. * java/security/KeyException.java: Likewise. * java/security/KeyManagementException.java: Likewise. * java/security/KeyStoreException.java: Likewise. * java/security/MessageDigest.java: Likewise. * java/security/NoSuchAlgorithmException.java: Likewise. * java/security/NoSuchProviderException.java: Likewise. * java/security/Permission.java: Likewise. * java/security/PermissionCollection.java: Likewise. * java/security/Permissions.java: Likewise. * java/security/Policy.java: Likewise. * java/security/Principal.java: Likewise. * java/security/PrivateKey.java: Likewise. * java/security/PrivilegedAction.java: Likewise. * java/security/PrivilegedActionException.java: Likewise. * java/security/PrivilegedExceptionAction.java: Likewise. * java/security/ProtectionDomain.java: Likewise. * java/security/ProviderException.java: Likewise. * java/security/PublicKey.java: Likewise. * java/security/SecureClassLoader.java: Likewise. * java/security/SecurityPermission.java: Likewise. * java/security/SignatureException.java: Likewise. * java/security/UnrecoverableKeyException.java: Likewise. * java/security/UnresolvedPermission.java: Likewise. * java/security/acl/AclNotFoundException.java: Likewise. * java/security/acl/LastOwnerException.java: Likewise. * java/security/acl/NotOwnerException.java: Likewise. * java/security/cert/CRLException.java: Likewise. * java/security/cert/CertificateEncodingException.java: Likewise. * java/security/cert/CertificateException.java: Likewise. * java/security/cert/CertificateExpiredException.java: Likewise. * java/security/cert/CertificateFactory.java: Likewise. * java/security/cert/CertificateNotYetValidException.java: Likewise. * java/security/cert/CertificateParsingException.java: Likewise. * java/security/spec/InvalidKeySpecException.java: Likewise. * java/security/spec/InvalidParameterSpecException.java: Likewise. * java/security/cert/CertPath.java: New file. * java/security/cert/CertPathBuilderException.java: New file. * java/security/cert/CertPathValidatorException.java: New file. * java/security/cert/CertStoreException.java: New file. * Makefile.am: Add new CertPath classes. * Makefile.in: Rebuilt. * gnu/java/util/EmptyEnumeration: New file from classpath. From-SVN: r53837 --- libjava/java/security/PermissionCollection.java | 174 +++++++++++------------- 1 file changed, 83 insertions(+), 91 deletions(-) (limited to 'libjava/java/security/PermissionCollection.java') diff --git a/libjava/java/security/PermissionCollection.java b/libjava/java/security/PermissionCollection.java index f4638bf..703767e 100644 --- a/libjava/java/security/PermissionCollection.java +++ b/libjava/java/security/PermissionCollection.java @@ -1,5 +1,5 @@ /* PermissionCollection.java -- A collection of permission objects - Copyright (C) 1998, 2001 Free Software Foundation, Inc. + Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -40,136 +40,128 @@ package java.security; import java.io.Serializable; import java.util.Enumeration; +/** + * This class models a group of Java permissions. It has convenient + * methods for determining whether or not a given permission is implied + * by any of the permissions in this collection. + * + *

Some care must be taken in storing permissions. First, a collection of + * the appropriate type must be created. This is done by calling the + * newPermissionCollection method on an object of the + * permission class you wish to add to the collection. If this method + * returns null, any type of PermissionCollection + * can be used to store permissions of that type. However, if a + * PermissionCollection collection object is returned, that + * type must be used. + * + *

A PermissionCollection returned by the + * newPermissionCollection method in a subclass of + * Permission is a homogeneous collection. It only will + * hold permissions of one specified type - instances of the class that + * created it. Not all PermissionCollection subclasses + * have to hold permissions of only one type however. For example, + * the Permissions class holds permissions of many types. + * + *

Since the newPermissionCollection in Permission + * itself returns null, by default a permission can be stored + * in any type of collection unless it overrides that method to create its + * own collection type. + * + * @author Aaron M. Renn + * @author Eric Blake + * @see Permission + * @see Permissions + * @since 1.1 + * @status updated to 1.4 + */ +public abstract class PermissionCollection implements Serializable +{ /** - * This class models a group of Java permissions. It has convenient - * methods for determining whether or not a given permission is implied - * by any of the permissions in this collection. - *

- * Some care must be taken in storing permissions. First, a collection of - * the appropriate type must be created. This is done by calling the - * newPermissionCollection method on an object of the - * permission class you wish to add to the collection. If this method - * returns null, any type of PermissionCollection - * can be used to store permissions of that type. However, if a - * PermissionCollection collection object is returned, that - * type must be used. - *

- * The PermissionCollection's returned - * by the newPermissionCollection instance in a subclass of - * Permission is a homogeneous collection. It only will - * hold permissions of one specified type - instances of the class that - * created it. Not all PermissionCollection subclasses - * have to hold permissions of only one type however. For example, - * the Permissions class holds permissions of many types. - *

- * Since the newPermissionCollection in Permission - * itself returns null, by default a permission can be stored - * in any type of collection unless it overrides that method to create its - * own collection type. - * - * @version 0.0 - * - * @author Aaron M. Renn (arenn@urbanophile.com) + * Compatible with JDK 1.1+. */ -public abstract class PermissionCollection - extends Object - implements Serializable -{ - private static final String linesep = null; - - static - { - String linesep = System.getProperty("line.separator"); - if (linesep == null); - linesep = "\n"; - } + private static final long serialVersionUID = -6727011328946861783L; /** * Indicates whether or not this collection is read only. + * + * @serial if the collection is read-only */ private boolean readOnly; /** - * This method initializes a new instance of PermissionCollection. - * This is provided only as a default constructor and does nothing in this - * class. + * Create a new collection. */ public PermissionCollection() { } /** - * This method tests whether or not this PermissionCollection - * object is read only. + * This method adds a new Permission object to the collection. + * + * @param perm the Permission to add * - * @return true if this collection is read only, false otherwise + * @throws SecurityException if the collection is marked read only + * @throws IllegalArgumentException if perm is of the wrong type */ - public boolean isReadOnly() - { - return (readOnly); - } + public abstract void add(Permission perm); /** - * This method sets this PermissionCollection object to be - * read only. No further permissions can be added to it after calling this - * method. - */ - public void setReadOnly() - { - readOnly = true; - } - - /** - * This method adds a new Permission object to the collection. - * - * @param perm The Permission to add. + * This method tests whether the specified Permission object is + * implied by this collection of Permission objects. * - * @exception SecurityException If the collection is marked read only. - * @exception IllegalArgumentException If a permission of the specified type cannot be added + * @param perm the Permission object to test + * @return true if the collection implies perm */ - public abstract void - add(Permission perm) throws SecurityException, IllegalArgumentException; + public abstract boolean implies(Permission perm); /** * This method returns an Enumeration of all the objects in * this collection. * - * @return An Enumeration of this collection's objects. + * @return an Enumeration of this collection's objects */ public abstract Enumeration elements(); /** - * This method tests whether the specified Permission object is - * implied by this collection of Permission objects. - * - * @param perm The Permission object to test. + * This method sets this PermissionCollection object to be + * read only. No further permissions can be added to it after calling this + * method. + */ + public void setReadOnly() + { + readOnly = true; + } + + /** + * This method tests whether or not this PermissionCollection + * object is read only. * - * @return true if the specified Permission is implied by this collection, false otherwise. + * @return true if this collection is read only */ - public abstract boolean implies(Permission perm); + public boolean isReadOnly() + { + return readOnly; + } /** * This method returns a String representation of this - * collection. It will print the class name and has code in the same - * manner as Object.toString() then print a listing of all - * the Permission objects contained. + * collection. It is formed by: + *

+   * super.toString()" (\n"
+   *   // enumerate all permissions, one per line
+   * ")\n"
+   * 
* - * @return A String representing this object. + * @return a String representing this object */ public String toString() { - StringBuffer sb = new StringBuffer(""); + StringBuffer sb = new StringBuffer(super.toString()); - sb.append(super.toString() + " (" + linesep); + sb.append(" (\n"); Enumeration e = elements(); while (e.hasMoreElements()) - { - Object obj = e.nextElement(); - if (obj instanceof Permission) - sb.append(((Permission) obj).toString() + linesep); - } - - sb.append(")" + linesep); - return (sb.toString()); + sb.append(' ').append(e.nextElement()).append('\n'); + return sb.append(")\n").toString(); } -} +} // class PermissionCollection -- cgit v1.1