java.security
Class Permissions

java.lang.Object sample code for java.lang.Object definition code for java.lang.Object 
  extended by java.security.PermissionCollection sample code for java.security.PermissionCollection definition code for java.security.PermissionCollection 
      extended by java.security.Permissions
All Implemented Interfaces:
Serializable sample code for java.io.Serializable definition code for java.io.Serializable

public final class Permissions
extends PermissionCollection sample code for java.security.PermissionCollection definition code for java.security.PermissionCollection
implements Serializable sample code for java.io.Serializable definition code for java.io.Serializable

This class represents a heterogeneous collection of Permissions. That is, it contains different types of Permission objects, organized into PermissionCollections. For example, if any java.io.FilePermission objects are added to an instance of this class, they are all stored in a single PermissionCollection. It is the PermissionCollection returned by a call to the newPermissionCollection method in the FilePermission class. Similarly, any java.lang.RuntimePermission objects are stored in the PermissionCollection returned by a call to the newPermissionCollection method in the RuntimePermission class. Thus, this class represents a collection of PermissionCollections.

When the add method is called to add a Permission, the Permission is stored in the appropriate PermissionCollection. If no such collection exists yet, the Permission object's class is determined and the newPermissionCollection method is called on that class to create the PermissionCollection and add it to the Permissions object. If newPermissionCollection returns null, then a default PermissionCollection that uses a hashtable will be created and used. Each hashtable entry stores a Permission object as both the key and the value.

Enumerations returned via the elements method are not fail-fast. Modifications to a collection should not be performed while enumerating over that collection.

See Also:
Permission sample code for java.security.Permission definition code for java.security.Permission , PermissionCollection sample code for java.security.PermissionCollection definition code for java.security.PermissionCollection , AllPermission sample code for java.security.AllPermission definition code for java.security.AllPermission

Constructor Summary
Permissions sample code for java.security.Permissions.Permissions() definition code for java.security.Permissions.Permissions() ()
          Creates a new Permissions object containing no PermissionCollections.
 
Method Summary
 void add sample code for java.security.Permissions.add(java.security.Permission) definition code for java.security.Permissions.add(java.security.Permission) (Permission sample code for java.security.Permission definition code for java.security.Permission  permission)
          Adds a permission object to the PermissionCollection for the class the permission belongs to.
 Enumeration sample code for java.util.Enumeration definition code for java.util.Enumeration <Permission sample code for java.security.Permission definition code for java.security.Permission > elements sample code for java.security.Permissions.elements() definition code for java.security.Permissions.elements() ()
          Returns an enumeration of all the Permission objects in all the PermissionCollections in this Permissions object.
 boolean implies sample code for java.security.Permissions.implies(java.security.Permission) definition code for java.security.Permissions.implies(java.security.Permission) (Permission sample code for java.security.Permission definition code for java.security.Permission  permission)
          Checks to see if this object's PermissionCollection for permissions of the specified permission's type implies the permissions expressed in the permission object.
 
Methods inherited from class java.security.PermissionCollection sample code for java.security.PermissionCollection definition code for java.security.PermissionCollection
isReadOnly sample code for java.security.PermissionCollection.isReadOnly() definition code for java.security.PermissionCollection.isReadOnly() , setReadOnly sample code for java.security.PermissionCollection.setReadOnly() definition code for java.security.PermissionCollection.setReadOnly() , toString sample code for java.security.PermissionCollection.toString() definition code for java.security.PermissionCollection.toString()
 
Methods inherited from class java.lang.Object sample code for java.lang.Object definition code for java.lang.Object
clone sample code for java.lang.Object.clone() definition code for java.lang.Object.clone() , equals sample code for java.lang.Object.equals(java.lang.Object) definition code for java.lang.Object.equals(java.lang.Object) , finalize sample code for java.lang.Object.finalize() definition code for java.lang.Object.finalize() , getClass sample code for java.lang.Object.getClass() definition code for java.lang.Object.getClass() , hashCode sample code for java.lang.Object.hashCode() definition code for java.lang.Object.hashCode() , notify sample code for java.lang.Object.notify() definition code for java.lang.Object.notify() , notifyAll sample code for java.lang.Object.notifyAll() definition code for java.lang.Object.notifyAll() , wait sample code for java.lang.Object.wait() definition code for java.lang.Object.wait() , wait sample code for java.lang.Object.wait(long) definition code for java.lang.Object.wait(long) , wait sample code for java.lang.Object.wait(long, int) definition code for java.lang.Object.wait(long, int)
 

Constructor Detail

Permissions sample code for java.security.Permissions() definition code for java.security.Permissions()

public Permissions()
Creates a new Permissions object containing no PermissionCollections.

Method Detail

add sample code for java.security.Permissions.add(java.security.Permission) definition code for java.security.Permissions.add(java.security.Permission)

public void add(Permission sample code for java.security.Permission definition code for java.security.Permission  permission)
Adds a permission object to the PermissionCollection for the class the permission belongs to. For example, if permission is a FilePermission, it is added to the FilePermissionCollection stored in this Permissions object. This method creates a new PermissionCollection object (and adds the permission to it) if an appropriate collection does not yet exist.

Specified by:
add sample code for java.security.PermissionCollection.add(java.security.Permission) definition code for java.security.PermissionCollection.add(java.security.Permission) in class PermissionCollection sample code for java.security.PermissionCollection definition code for java.security.PermissionCollection
Parameters:
permission - the Permission object to add.
Throws:
SecurityException sample code for java.lang.SecurityException definition code for java.lang.SecurityException - if this Permissions object is marked as readonly.
See Also:
PermissionCollection.isReadOnly() sample code for java.security.PermissionCollection.isReadOnly() definition code for java.security.PermissionCollection.isReadOnly()

implies sample code for java.security.Permissions.implies(java.security.Permission) definition code for java.security.Permissions.implies(java.security.Permission)

public boolean implies(Permission sample code for java.security.Permission definition code for java.security.Permission  permission)
Checks to see if this object's PermissionCollection for permissions of the specified permission's type implies the permissions expressed in the permission object. Returns true if the combination of permissions in the appropriate PermissionCollection (e.g., a FilePermissionCollection for a FilePermission) together imply the specified permission.

For example, suppose there is a FilePermissionCollection in this Permissions object, and it contains one FilePermission that specifies "read" access for all files in all subdirectories of the "/tmp" directory, and another FilePermission that specifies "write" access for all files in the "/tmp/scratch/foo" directory. Then if the implies method is called with a permission specifying both "read" and "write" access to files in the "/tmp/scratch/foo" directory, true is returned.

Additionally, if this PermissionCollection contains the AllPermission, this method will always return true.

Specified by:
implies sample code for java.security.PermissionCollection.implies(java.security.Permission) definition code for java.security.PermissionCollection.implies(java.security.Permission) in class PermissionCollection sample code for java.security.PermissionCollection definition code for java.security.PermissionCollection
Parameters:
permission - the Permission object to check.
Returns:
true if "permission" is implied by the permissions in the PermissionCollection it belongs to, false if not.

elements sample code for java.security.Permissions.elements() definition code for java.security.Permissions.elements()

public Enumeration sample code for java.util.Enumeration definition code for java.util.Enumeration <Permission sample code for java.security.Permission definition code for java.security.Permission > elements()
Returns an enumeration of all the Permission objects in all the PermissionCollections in this Permissions object.

Specified by:
elements sample code for java.security.PermissionCollection.elements() definition code for java.security.PermissionCollection.elements() in class PermissionCollection sample code for java.security.PermissionCollection definition code for java.security.PermissionCollection
Returns:
an enumeration of all the Permissions.