javax.smartcardio

## Class CardPermission

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

- All Implemented Interfaces:
    java.io.Serializable, java.security.Guard

      public class CardPermission
      extends java.security.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 and Description
    `CardPermission(java.lang.String terminalName, java.lang.String actions)` Constructs a new CardPermission with the specified actions.

  - ### Method Summary

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

    - ### Methods inherited from class java.security.Permission

      `checkGuard, getName, newPermissionCollection, toString`

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

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

- - ### Constructor Detail

    - #### CardPermission

          public CardPermission(java.lang.String terminalName,
                                java.lang.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:
        `java.lang.NullPointerException` - if terminalName is null
        `java.lang.IllegalArgumentException` - if actions is an invalid actions specification

  - ### Method Detail

    - #### getActions

          public java.lang.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 `java.security.Permission`
      Returns:
        the canonical string representation of the actions.

    - #### implies

          public boolean implies(java.security.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 `java.security.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(java.lang.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 `java.security.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

    - #### hashCode

          public int hashCode()

      Returns the hash code value for this CardPermission object.
      Specified by:
        `hashCode` in class `java.security.Permission`
      Returns:
        the hash code value for this CardPermission object.