PermissionInfo
Date: 2016-06-24

org.osgi.service.permissionadmin

## Class PermissionInfo

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

-     public class PermissionInfo
      extends java.lang.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 and Description
    `PermissionInfo(java.lang.String encodedPermission)` Constructs a `PermissionInfo` object from the specified encoded `PermissionInfo` string.
    `PermissionInfo(java.lang.String type, java.lang.String name, java.lang.String actions)` Constructs a `PermissionInfo` from the specified type, name, and actions.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(java.lang.Object obj)` Determines the equality of two `PermissionInfo` objects.
    `java.lang.String` | `getActions()` Returns the actions of the permission represented by this `PermissionInfo`.
    `java.lang.String` | `getEncoded()` Returns the string encoding of this `PermissionInfo` in a form suitable for restoring this `PermissionInfo`.
    `java.lang.String` | `getName()` Returns the name of the permission represented by this `PermissionInfo`.
    `java.lang.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.
    `java.lang.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 Detail

    - #### PermissionInfo

          public PermissionInfo(java.lang.String type,
                        java.lang.String name,
                        java.lang.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:
        `java.lang.NullPointerException` - If `type` is `null`.
        `java.lang.IllegalArgumentException` - If `action` is not `null` and `name` is `null`.

    - #### PermissionInfo

          public PermissionInfo(java.lang.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:
        `java.lang.IllegalArgumentException` - If the specified `encodedPermission` is not properly formatted.
      See Also:
        `getEncoded()`

  - ### Method Detail

    - #### getEncoded

          public final java.lang.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 java.lang.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 `java.lang.Object`
      Returns:
        The string representation of this `PermissionInfo`.

    - #### getType

          public final java.lang.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 java.lang.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 java.lang.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(java.lang.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 `java.lang.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 `java.lang.Object`
      Returns:
        A hash code value for this object.