org.osgi.framework

Class BundlePermission

public final class BundlePermission extends BasicPermission

A bundle's authority to require or provide a bundle or to receive or attach fragments.

A bundle symbolic name defines a unique fully qualified name.

For example:

 
 org.osgi.example.bundle
 
 

BundlePermission has four actions: PROVIDE, REQUIRE,HOST, and FRAGMENT. The PROVIDE action implies the REQUIRE action.

Since: 1.3

Version: $Revision: 1.16 $

Field Summary
static StringFRAGMENT
The action string fragment.
static StringHOST
The action string host.
static StringPROVIDE
The action string provide.
static StringREQUIRE
The action string require.
Constructor Summary
BundlePermission(String symbolicName, String actions)
Defines the authority to provide and/or require and or specify a host fragment symbolic name within the OSGi environment.
Method Summary
booleanequals(Object obj)
Determines the equality of two BundlePermission objects.
StringgetActions()
Returns the canonical string representation of the BundlePermission actions.
inthashCode()
Returns the hash code value for this object.
booleanimplies(Permission p)
Determines if the specified permission is implied by this object.
PermissionCollectionnewPermissionCollection()
Returns a new PermissionCollection object suitable for storing BundlePermission objects.

Field Detail

FRAGMENT

public static final String FRAGMENT
The action string fragment.

HOST

public static final String HOST
The action string host.

PROVIDE

public static final String PROVIDE
The action string provide.

REQUIRE

public static final String REQUIRE
The action string require.

Constructor Detail

BundlePermission

public BundlePermission(String symbolicName, String actions)
Defines the authority to provide and/or require and or specify a host fragment symbolic name within the OSGi environment.

Bundle Permissions are granted over all possible versions of a bundle. A bundle that needs to provide a bundle must have the appropriate BundlePermission for the symbolic name; a bundle that requires a bundle must have the appropriate BundlePermssion for that symbolic name; a bundle that specifies a fragment host must have the appropriate BundlePermission for that symbolic name.

Parameters: symbolicName the bundle symbolic name. actions PROVIDE,REQUIRE, HOST,FRAGMENT (canonical order).

Method Detail

equals

public boolean equals(Object obj)
Determines the equality of two BundlePermission objects. This method checks that specified bundle has the same bundle symbolic name and BundlePermission actions as this BundlePermission object.

Parameters: obj The object to test for equality with this BundlePermission object.

Returns: true if obj is a BundlePermission, and has the same bundle symbolic name and actions as this BundlePermission object; false otherwise.

getActions

public String getActions()
Returns the canonical string representation of the BundlePermission actions.

Always returns present BundlePermission actions in the following order: PROVIDE,REQUIRE, HOST,FRAGMENT.

Returns: Canonical string representation of the BundlePermission actions.

hashCode

public int hashCode()
Returns the hash code value for this object.

Returns: A hash code value for this object.

implies

public boolean implies(Permission p)
Determines if the specified permission is implied by this object.

This method checks that the symbolic name of the target is implied by the symbolic name of this object. The list of BundlePermission actions must either match or allow for the list of the target object to imply the target BundlePermission action.

The permission to provide a bundle implies the permission to require the named symbolic name.

       x.y.*,"provide" -> x.y.z,"provide" is true
       *,"require" -> x.y, "require"      is true
       *,"provide" -> x.y, "require"      is true
       x.y,"provide" -> x.y.z, "provide"  is false
 

Parameters: p The target permission to interrogate.

Returns: true if the specified BundlePermission action is implied by this object; false otherwise.

newPermissionCollection

public PermissionCollection newPermissionCollection()
Returns a new PermissionCollection object suitable for storing BundlePermission objects.

Returns: A new PermissionCollection object.