diff options
author | Bryce McKinlay <bryce@waitaki.otago.ac.nz> | 2002-05-24 11:57:40 +0000 |
---|---|---|
committer | Bryce McKinlay <bryce@gcc.gnu.org> | 2002-05-24 12:57:40 +0100 |
commit | d2f108e266cd19172d664d433e772420e88d1504 (patch) | |
tree | 187144ec8bafd5099db53104f17f94e9a6db61c3 /libjava/java/security/PermissionCollection.java | |
parent | 4fbecd29448860f20975d7aceecc14e843ef0eec (diff) | |
download | gcc-d2f108e266cd19172d664d433e772420e88d1504.zip gcc-d2f108e266cd19172d664d433e772420e88d1504.tar.gz gcc-d2f108e266cd19172d664d433e772420e88d1504.tar.bz2 |
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
Diffstat (limited to 'libjava/java/security/PermissionCollection.java')
-rw-r--r-- | libjava/java/security/PermissionCollection.java | 174 |
1 files changed, 83 insertions, 91 deletions
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. + * + * <p>Some care must be taken in storing permissions. First, a collection of + * the appropriate type must be created. This is done by calling the + * <code>newPermissionCollection</code> method on an object of the + * permission class you wish to add to the collection. If this method + * returns <code>null</code>, any type of <code>PermissionCollection</code> + * can be used to store permissions of that type. However, if a + * <code>PermissionCollection</code> collection object is returned, that + * type must be used. + * + * <p>A <code>PermissionCollection</code> returned by the + * <code>newPermissionCollection</code> method in a subclass of + * <code>Permission</code> is a homogeneous collection. It only will + * hold permissions of one specified type - instances of the class that + * created it. Not all <code>PermissionCollection</code> subclasses + * have to hold permissions of only one type however. For example, + * the <code>Permissions</code> class holds permissions of many types. + * + * <p>Since the <code>newPermissionCollection</code> in <code>Permission</code> + * itself returns <code>null</code>, 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 <arenn@urbanophile.com> + * @author Eric Blake <ebb9@email.byu.edu> + * @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. - * <p> - * Some care must be taken in storing permissions. First, a collection of - * the appropriate type must be created. This is done by calling the - * <code>newPermissionCollection</code> method on an object of the - * permission class you wish to add to the collection. If this method - * returns <code>null</code>, any type of <code>PermissionCollection</code> - * can be used to store permissions of that type. However, if a - * <code>PermissionCollection</code> collection object is returned, that - * type must be used. - * <p> - * The <code>PermissionCollection</code>'s returned - * by the <code>newPermissionCollection</code> instance in a subclass of - * <code>Permission</code> is a homogeneous collection. It only will - * hold permissions of one specified type - instances of the class that - * created it. Not all <code>PermissionCollection</code> subclasses - * have to hold permissions of only one type however. For example, - * the <code>Permissions</code> class holds permissions of many types. - * <p> - * Since the <code>newPermissionCollection</code> in <code>Permission</code> - * itself returns <code>null</code>, 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 <code>PermissionCollection</code>. - * 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 <code>PermissionCollection</code> - * object is read only. + * This method adds a new <code>Permission</code> object to the collection. + * + * @param perm the <code>Permission</code> to add * - * @return <code>true</code> if this collection is read only, <code>false</code> 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 <code>PermissionCollection</code> 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 <code>Permission</code> object to the collection. - * - * @param perm The <code>Permission</code> to add. + * This method tests whether the specified <code>Permission</code> object is + * implied by this collection of <code>Permission</code> 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 <code>Permission</code> 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 <code>Enumeration</code> of all the objects in * this collection. * - * @return An <code>Enumeration</code> of this collection's objects. + * @return an <code>Enumeration</code> of this collection's objects */ public abstract Enumeration elements(); /** - * This method tests whether the specified <code>Permission</code> object is - * implied by this collection of <code>Permission</code> objects. - * - * @param perm The <code>Permission</code> object to test. + * This method sets this <code>PermissionCollection</code> 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 <code>PermissionCollection</code> + * object is read only. * - * @return <code>true</code> if the specified <code>Permission</code> is implied by this collection, <code>false</code> otherwise. + * @return true if this collection is read only */ - public abstract boolean implies(Permission perm); + public boolean isReadOnly() + { + return readOnly; + } /** * This method returns a <code>String</code> representation of this - * collection. It will print the class name and has code in the same - * manner as <code>Object.toString()</code> then print a listing of all - * the <code>Permission</code> objects contained. + * collection. It is formed by: + * <pre> + * super.toString()" (\n" + * // enumerate all permissions, one per line + * ")\n" + * </pre> * - * @return A <code>String</code> representing this object. + * @return a <code>String</code> 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 |