Module java.smartcardio
Package javax.smartcardio

## Class CardPermission

- java.lang.Object
- - java.security.Permission
  - - javax.smartcardio.CardPermission

- All Implemented Interfaces:
    `Serializable`, `Guard`

      public class CardPermission
      extends Permission

  A permission for Smart Card operations. A CardPermission consists of the name of the card terminal the permission applies to and a set of actions that are valid for that terminal.

  A CardPermission with a name of `*` applies to all card terminals. The actions string is a comma separated list of the actions listed below, or `*` to signify "all actions."

  Individual actions are:

  connect
    connect to a card using CardTerminal.connect()
  reset
    reset the card using Card.disconnect(true)
  exclusive
    establish exclusive access to a card using Card.beginExclusive() and endExclusive()
  transmitControl
    transmit a control command using Card.transmitControlCommand()
  getBasicChannel
    obtain the basic logical channel using Card.getBasicChannel()
  openLogicalChannel
    open a new logical channel using Card.openLogicalChannel()
  Since:
    1.6
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `CardPermission​(String terminalName, String actions)` | Constructs a new CardPermission with the specified actions.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `equals​(Object obj)` | Compares the specified object with this CardPermission for equality.
    `String` | `getActions()` | Returns the canonical string representation of the actions.
    `int` | `hashCode()` | Returns the hash code value for this CardPermission object.
    `boolean` | `implies​(Permission permission)` | Checks if this CardPermission object implies the specified permission.

    - ### Methods declared in class java.security.Permission

      `checkGuard, getName, newPermissionCollection, toString`

    - ### Methods declared in class java.lang.Object

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

- - ### Constructor Detail

    - #### CardPermission

          public CardPermission​(String terminalName,
                                String actions)

      Constructs a new CardPermission with the specified actions. `terminalName` is the name of a CardTerminal or `*` if this permission applies to all terminals. `actions` contains a comma-separated list of the individual actions or `*` to signify all actions. For more information, see the documentation at the top of this class.
      Parameters:
        `terminalName` - the name of the card terminal, or `*`
        `actions` - the action string (or null if the set of permitted actions is empty)
      Throws:
        `NullPointerException` - if terminalName is null
        `IllegalArgumentException` - if actions is an invalid actions specification

  - ### Method Detail

    - #### getActions

          public String getActions()

      Returns the canonical string representation of the actions. It is `*` to signify all actions defined by this class or the string concatenation of the comma-separated, lexicographically sorted list of individual actions.
      Specified by:
        `getActions` in class `Permission`
      Returns:
        the canonical string representation of the actions.

    - #### implies

          public boolean implies​(Permission permission)

      Checks if this CardPermission object implies the specified permission. That is the case, if and only if

      - `permission` is an instance of CardPermission,

      - `permission`'s actions are a proper subset of this object's actions, and

      - this object's `getName()` method is either `*` or equal to `permission`'s `name`.

      Specified by:
        `implies` in class `Permission`
      Parameters:
        `permission` - the permission to check against
      Returns:
        true if and only if this CardPermission object implies the specified permission.

    - #### equals

          public boolean equals​(Object obj)

      Compares the specified object with this CardPermission for equality. This CardPermission is equal to another Object `object`, if and only if

      - `object` is an instance of CardPermission,

      - `this.getName()` is equal to `((CardPermission)object).getName()`, and

      - `this.getActions()` is equal to `((CardPermission)object).getActions()`.

      Specified by:
        `equals` in class `Permission`
      Parameters:
        `obj` - the object to be compared for equality with this CardPermission
      Returns:
        true if and only if the specified object is equal to this CardPermission
      See Also:
        `Object.hashCode()`, `HashMap`

    - #### hashCode

          public int hashCode()

      Returns the hash code value for this CardPermission object.
      Specified by:
        `hashCode` in class `Permission`
      Returns:
        the hash code value for this CardPermission object.
      See Also:
        `Object.equals(java.lang.Object)`, `System.identityHashCode(java.lang.Object)`