ConditionalPermissionInfo
Date: 2016-06-24

org.osgi.service.condpermadmin

## Interface ConditionalPermissionInfo

-     @ProviderType
      public interface ConditionalPermissionInfo

  A list of Permissions guarded by a list of conditions with an access decision. Instances of this interface are obtained from the Conditional Permission Admin service.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `ALLOW` This string is used to indicate that a row in the Conditional Permission Table should return an access decision of "allow" if the conditions are all satisfied and at least one of the permissions is implied.
    `static java.lang.String` | `DENY` This string is used to indicate that a row in the Conditional Permission Table should return an access decision of "deny" if the conditions are all satisfied and at least one of the permissions is implied.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `delete()` Deprecated. Since 1.1. Use `ConditionalPermissionAdmin.newConditionalPermissionUpdate()` instead to manage the Conditional Permissions.
    `boolean` | `equals(java.lang.Object obj)` Determines the equality of two `ConditionalPermissionInfo` objects.
    `java.lang.String` | `getAccessDecision()` Returns the access decision for this Conditional Permission Info.
    `ConditionInfo[]` | `getConditionInfos()` Returns the Condition Infos for the Conditions that must be satisfied to enable the Permissions.
    `java.lang.String` | `getEncoded()` Returns the string encoding of this `ConditionalPermissionInfo` in a form suitable for restoring this `ConditionalPermissionInfo`.
    `java.lang.String` | `getName()` Returns the name of this Conditional Permission Info.
    `PermissionInfo[]` | `getPermissionInfos()` Returns the Permission Infos for the Permissions in this Conditional Permission Info.
    `int` | `hashCode()` Returns the hash code value for this object.
    `java.lang.String` | `toString()` Returns the string representation of this `ConditionalPermissionInfo`.

- - ### Field Detail

    - #### ALLOW

          static final java.lang.String ALLOW

      This string is used to indicate that a row in the Conditional Permission Table should return an access decision of "allow" if the conditions are all satisfied and at least one of the permissions is implied.
      Since:
        1.1
      See Also:
        Constant Field Values

    - #### DENY

          static final java.lang.String DENY

      This string is used to indicate that a row in the Conditional Permission Table should return an access decision of "deny" if the conditions are all satisfied and at least one of the permissions is implied.
      Since:
        1.1
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getConditionInfos

          ConditionInfo[] getConditionInfos()

      Returns the Condition Infos for the Conditions that must be satisfied to enable the Permissions.
      Returns:
        The Condition Infos for the Conditions in this Conditional Permission Info.

    - #### getPermissionInfos

          PermissionInfo[] getPermissionInfos()

      Returns the Permission Infos for the Permissions in this Conditional Permission Info.
      Returns:
        The Permission Infos for the Permissions in this Conditional Permission Info.

    - #### delete

          void delete()

      Deprecated. Since 1.1. Use `ConditionalPermissionAdmin.newConditionalPermissionUpdate()` instead to manage the Conditional Permissions.
      Removes this Conditional Permission Info from the Conditional Permission Table.

      Since this method changes the underlying permission table, any `ConditionalPermissionUpdate`s that were created prior to calling this method can no longer be committed.

      Throws:
        `java.lang.UnsupportedOperationException` - If this object was created by `ConditionalPermissionAdmin.newConditionalPermissionInfo(String)` or `ConditionalPermissionAdmin.newConditionalPermissionInfo(String, ConditionInfo[] , PermissionInfo[] , String)` or obtained from a `ConditionalPermissionUpdate`. This method only functions if this object was obtained from one of the `ConditionalPermissionAdmin` methods deprecated in version 1.1.
        `java.lang.SecurityException` - If the caller does not have `AllPermission`.

    - #### getName

          java.lang.String getName()

      Returns the name of this Conditional Permission Info.
      Returns:
        The name of this Conditional Permission Info. This can be `null` if this Conditional Permission Info was created without a name.

    - #### getAccessDecision

          java.lang.String getAccessDecision()

      Returns the access decision for this Conditional Permission Info.
      Returns:
        One of the following values:
        - `allow` - The access decision is "allow".
        - `deny` - The access decision is "deny".
      Since:
        1.1

    - #### getEncoded

          java.lang.String getEncoded()

      Returns the string encoding of this `ConditionalPermissionInfo` in a form suitable for restoring this `ConditionalPermissionInfo`.

      The encoded format is:

             access {conditions permissions} name

      where access is the access decision, conditions is zero or more `encoded conditions`, permissions is one or more `encoded permissions` and name is the name of the `ConditionalPermissionInfo`.

      name is optional. If name is present in the encoded string, it must quoted, beginning and ending with `"`. The name value 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 access and `{` and between `}` and name, if name is present. All encoded conditions and permissions are separated by a single space character.

      Returns:
        The string encoding of this `ConditionalPermissionInfo`.
      Since:
        1.1

    - #### toString

          java.lang.String toString()

      Returns the string representation of this `ConditionalPermissionInfo`. The string is created by calling the `getEncoded` method on this `ConditionalPermissionInfo`.
      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        The string representation of this `ConditionalPermissionInfo`.
      Since:
        1.1

    - #### equals

          boolean equals(java.lang.Object obj)

      Determines the equality of two `ConditionalPermissionInfo` objects. This method checks that specified object has the same access decision, conditions, permissions and name as this `ConditionalPermissionInfo` object.
      Overrides:
        `equals` in class `java.lang.Object`
      Parameters:
        `obj` - The object to test for equality with this `ConditionalPermissionInfo` object.
      Returns:
        `true` if `obj` is a `ConditionalPermissionInfo`, and has the same access decision, conditions, permissions and name as this `ConditionalPermissionInfo` object; `false` otherwise.
      Since:
        1.1

    - #### hashCode

          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.
      Since:
        1.1