Package org.osgi.service.permissionadmin

# Class PermissionInfo

java.lang.Object
org.osgi.service.permissionadmin.PermissionInfo

public class PermissionInfo extends Object
Permission representation used by the Permission Admin service.

This class encapsulates three pieces of information: a Permission type (class name), which must be a subclass of `java.security.Permission`, and the name and actions arguments passed to its constructor.

In order for a permission represented by a `PermissionInfo` to be instantiated and considered during a permission check, its Permission class must be available from the system classpath or an exported package. This means that the instantiation of a permission represented by a `PermissionInfo` may be delayed until the package containing its Permission class has been exported by a bundle.

## Constructor Summary

Constructors
Constructor
Description
`PermissionInfo(String encodedPermission)`
Constructs a `PermissionInfo` object from the specified encoded `PermissionInfo` string.
`PermissionInfo(String type, String name, String actions)`
Constructs a `PermissionInfo` from the specified type, name, and actions.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`equals(Object obj)`
Determines the equality of two `PermissionInfo` objects.
`final String`
`getActions()`
Returns the actions of the permission represented by this `PermissionInfo`.
`final String`
`getEncoded()`
Returns the string encoding of this `PermissionInfo` in a form suitable for restoring this `PermissionInfo`.
`final String`
`getName()`
Returns the name of the permission represented by this `PermissionInfo`.
`final String`
`getType()`
Returns the fully qualified class name of the permission represented by this `PermissionInfo`.
`int`
`hashCode()`
Returns the hash code value for this object.
`String`
`toString()`
Returns the string representation of this `PermissionInfo`.

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

## Constructor Details

### PermissionInfo

public PermissionInfo(String type, String name, String actions)
Constructs a `PermissionInfo` from the specified type, name, and actions.

Parameters:
  `type` - The fully qualified class name of the permission represented by this `PermissionInfo`. The class must be a subclass of `java.security.Permission` and must define a 2-argument constructor that takes a name string and an actions string.
  `name` - The permission name that will be passed as the first argument to the constructor of the `Permission` class identified by `type`.
  `actions` - The permission actions that will be passed as the second argument to the constructor of the `Permission` class identified by `type`.
Throws:
  `NullPointerException` - If `type` is `null`.
  `IllegalArgumentException` - If `action` is not `null` and `name` is `null`.

### PermissionInfo

public PermissionInfo(String encodedPermission)
Constructs a `PermissionInfo` object from the specified encoded `PermissionInfo` string. White space in the encoded `PermissionInfo` string is ignored.

Parameters:
  `encodedPermission` - The encoded `PermissionInfo`.
Throws:
  `IllegalArgumentException` - If the specified `encodedPermission` is not properly formatted.
See Also:
  - `getEncoded()`

## Method Details

### getEncoded

public final String getEncoded()
Returns the string encoding of this `PermissionInfo` in a form suitable for restoring this `PermissionInfo`.

The encoded format is:

     (type)

or

     (type "name")

or

     (type "name" "actions")

where name and actions are strings that must be encoded for proper parsing. Specifically, the `"`,`\`, carriage return, and line feed characters must be escaped using `\"`, `\\`, `\r`, and `\n`, respectively.

The encoded string contains no leading or trailing whitespace characters. A single space character is used between type and "name" and between "name" and "actions".

Returns:
  The string encoding of this `PermissionInfo`.

### toString

public String toString()
Returns the string representation of this `PermissionInfo`. The string is created by calling the `getEncoded` method on this `PermissionInfo`.

Overrides:
  `toString` in class `Object`
Returns:
  The string representation of this `PermissionInfo`.

### getType

public final String getType()
Returns the fully qualified class name of the permission represented by this `PermissionInfo`.

Returns:
  The fully qualified class name of the permission represented by this `PermissionInfo`.

### getName

public final String getName()
Returns the name of the permission represented by this `PermissionInfo`.

Returns:
  The name of the permission represented by this `PermissionInfo`, or `null` if the permission does not have a name.

### getActions

public final String getActions()
Returns the actions of the permission represented by this `PermissionInfo`.

Returns:
  The actions of the permission represented by this `PermissionInfo`, or `null` if the permission does not have any actions associated with it.

### equals

public boolean equals(Object obj)
Determines the equality of two `PermissionInfo` objects. This method checks that specified object has the same type, name and actions as this `PermissionInfo` object.

Overrides:
  `equals` in class `Object`
Parameters:
  `obj` - The object to test for equality with this `PermissionInfo` object.
Returns:
  `true` if `obj` is a `PermissionInfo`, and has the same type, name and actions as this `PermissionInfo` object; `false` otherwise.

### hashCode

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

Overrides:
  `hashCode` in class `Object`
Returns:
  A hash code value for this object.