Class BundlePermission
- java.lang.Object
-
- java.security.Permission
-
- java.security.BasicPermission
-
- org.osgi.framework.BundlePermission
-
- All Implemented Interfaces:
java.io.Serializable
,java.security.Guard
public final class BundlePermission extends java.security.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. Wildcards may be used.
name ::= <symbolic name> | <symbolic name ending in ".*"> | *
Examples:org.osgi.example.bundle org.osgi.example.* *
BundlePermission
has four actions:provide
,require
,host
, andfragment
. Theprovide
action implies therequire
action.- Since:
- 1.3
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private static int
ACTION_ALL
private static int
ACTION_FRAGMENT
private static int
ACTION_HOST
private int
action_mask
The actions mask.(package private) static int
ACTION_NONE
private static int
ACTION_PROVIDE
private static int
ACTION_REQUIRE
private java.lang.String
actions
The actions in canonical form.static java.lang.String
FRAGMENT
The action stringfragment
.static java.lang.String
HOST
The action stringhost
.static java.lang.String
PROVIDE
The action stringprovide
.static java.lang.String
REQUIRE
The action stringrequire
.private static long
serialVersionUID
-
Constructor Summary
Constructors Constructor Description BundlePermission(java.lang.String symbolicName, int mask)
Package private constructor used by BundlePermissionCollection.BundlePermission(java.lang.String symbolicName, java.lang.String actions)
Defines the authority to provide and/or require and or specify a host fragment symbolic name within the OSGi environment.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(java.lang.Object obj)
Determines the equality of twoBundlePermission
objects.java.lang.String
getActions()
Returns the canonical string representation of theBundlePermission
actions.(package private) int
getActionsMask()
Returns the current action mask.int
hashCode()
Returns the hash code value for this object.boolean
implies(java.security.Permission p)
Determines if the specified permission is implied by this object.java.security.PermissionCollection
newPermissionCollection()
Returns a newPermissionCollection
object suitable for storingBundlePermission
objects.private static int
parseActions(java.lang.String actions)
Parse action string into action mask.private void
readObject(java.io.ObjectInputStream s)
readObject is called to restore the state of the BundlePermission from a stream.private void
setTransients(int mask)
Called by constructors and when deserialized.private void
writeObject(java.io.ObjectOutputStream s)
WriteObject is called to save the state of theBundlePermission
object to a stream.
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
PROVIDE
public static final java.lang.String PROVIDE
The action stringprovide
. Theprovide
action implies therequire
action.- See Also:
- Constant Field Values
-
REQUIRE
public static final java.lang.String REQUIRE
The action stringrequire
. Therequire
action is implied by theprovide
action.- See Also:
- Constant Field Values
-
HOST
public static final java.lang.String HOST
The action stringhost
.- See Also:
- Constant Field Values
-
FRAGMENT
public static final java.lang.String FRAGMENT
The action stringfragment
.- See Also:
- Constant Field Values
-
ACTION_PROVIDE
private static final int ACTION_PROVIDE
- See Also:
- Constant Field Values
-
ACTION_REQUIRE
private static final int ACTION_REQUIRE
- See Also:
- Constant Field Values
-
ACTION_HOST
private static final int ACTION_HOST
- See Also:
- Constant Field Values
-
ACTION_FRAGMENT
private static final int ACTION_FRAGMENT
- See Also:
- Constant Field Values
-
ACTION_ALL
private static final int ACTION_ALL
- See Also:
- Constant Field Values
-
ACTION_NONE
static final int ACTION_NONE
- See Also:
- Constant Field Values
-
action_mask
private transient int action_mask
The actions mask.
-
actions
private volatile java.lang.String actions
The actions in canonical form.
-
-
Constructor Detail
-
BundlePermission
public BundlePermission(java.lang.String symbolicName, java.lang.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 appropriateBundlePermssion
for that symbolic name; a bundle that specifies a fragment host must have the appropriateBundlePermission
for that symbolic name.- Parameters:
symbolicName
- The bundle symbolic name.actions
-provide
,require
,host
,fragment
(canonical order).
-
BundlePermission
BundlePermission(java.lang.String symbolicName, int mask)
Package private constructor used by BundlePermissionCollection.- Parameters:
symbolicName
- the bundle symbolic namemask
- the action mask
-
-
Method Detail
-
setTransients
private void setTransients(int mask)
Called by constructors and when deserialized.- Parameters:
mask
-
-
getActionsMask
int getActionsMask()
Returns the current action mask.Used by the BundlePermissionCollection class.
- Returns:
- Current action mask.
-
parseActions
private static int parseActions(java.lang.String actions)
Parse action string into action mask.- Parameters:
actions
- Action string.- Returns:
- action mask.
-
implies
public boolean implies(java.security.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 targetBundlePermission
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
- Overrides:
implies
in classjava.security.BasicPermission
- Parameters:
p
- The requested permission.- Returns:
true
if the specifiedBundlePermission
action is implied by this object;false
otherwise.
-
getActions
public java.lang.String getActions()
Returns the canonical string representation of theBundlePermission
actions.Always returns present
BundlePermission
actions in the following order:provide
,require
,host
,fragment
.- Overrides:
getActions
in classjava.security.BasicPermission
- Returns:
- Canonical string representation of the
BundlePermission
actions.
-
newPermissionCollection
public java.security.PermissionCollection newPermissionCollection()
Returns a newPermissionCollection
object suitable for storingBundlePermission
objects.- Overrides:
newPermissionCollection
in classjava.security.BasicPermission
- Returns:
- A new
PermissionCollection
object.
-
equals
public boolean equals(java.lang.Object obj)
Determines the equality of twoBundlePermission
objects. This method checks that specified bundle has the same bundle symbolic name andBundlePermission
actions as thisBundlePermission
object.- Overrides:
equals
in classjava.security.BasicPermission
- Parameters:
obj
- The object to test for equality with thisBundlePermission
object.- Returns:
true
ifobj
is aBundlePermission
, and has the same bundle symbolic name and actions as thisBundlePermission
object;false
otherwise.
-
hashCode
public int hashCode()
Returns the hash code value for this object.- Overrides:
hashCode
in classjava.security.BasicPermission
- Returns:
- A hash code value for this object.
-
writeObject
private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException
WriteObject is called to save the state of theBundlePermission
object to a stream. The actions are serialized, and the superclass takes care of the name.- Throws:
java.io.IOException
-
readObject
private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, java.lang.ClassNotFoundException
readObject is called to restore the state of the BundlePermission from a stream.- Throws:
java.io.IOException
java.lang.ClassNotFoundException
-
-