Package java.security

## Class BasicPermission

- java.lang.Object
- - java.security.Permission
  - - java.security.BasicPermission

- All Implemented Interfaces:
    `Serializable`, `Guard`
  Direct Known Subclasses:
    `PropertyPermission`, `RuntimePermission`

      public abstract class BasicPermission
      extends Permission
      implements Serializable

  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `BasicPermission​(String name)` | Creates a new BasicPermission with the specified name.
    `BasicPermission​(String name, String actions)` | Creates a new BasicPermission object with the specified name.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `equals​(Object obj)` | Checks two BasicPermission objects for equality.
    `String` | `getActions()` | Returns the canonical string representation of the actions, which currently is the empty string "", since there are no actions for a BasicPermission.
    `int` | `hashCode()` | Returns the hash code value for this object.
    `boolean` | `implies​(Permission p)` | Checks if the specified permission is "implied" by this object.

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

      `getName, toString`

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

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

- - ### Constructor Detail

    - #### BasicPermission

          public BasicPermission​(String name)

      Creates a new BasicPermission with the specified name. Name is the symbolic name of the permission, such as "setFactory", "print.queueJob", or "topLevelWindow", etc.
      Parameters:
        `name` - the name of the BasicPermission.
      Throws:
        `NullPointerException` - if `name` is `null`.
        `IllegalArgumentException` - if `name` is empty.

    - #### BasicPermission

          public BasicPermission​(String name,
                                 @Nullable
                                 String actions)

      Creates a new BasicPermission object with the specified name. The name is the symbolic name of the BasicPermission, and the actions String is currently unused.
      Parameters:
        `name` - the name of the BasicPermission.
        `actions` - ignored.
      Throws:
        `NullPointerException` - if `name` is `null`.
        `IllegalArgumentException` - if `name` is empty.

  - ### Method Detail

    - #### equals

          public boolean equals​(@Nullable
                                Object obj)

      Checks two BasicPermission objects for equality. Checks that obj's class is the same as this object's class and has the same name as this object.

      Specified by:
        `equals` in class `Permission`
      Parameters:
        `obj` - the object we are testing for equality with this object.
      Returns:
        true if obj's class is the same as this object's class and has the same name as this BasicPermission object, false otherwise.
      See Also:
        `Object.hashCode()`, `HashMap`

    - #### getActions

          public String getActions()

      Returns the canonical string representation of the actions, which currently is the empty string "", since there are no actions for a BasicPermission.
      Specified by:
        `getActions` in class `Permission`
      Returns:
        the empty string "".

    - #### hashCode

          public int hashCode()

      Returns the hash code value for this object. The hash code used is the hash code of the name, that is, `getName().hashCode()`, where `getName` is from the Permission superclass.
      Specified by:
        `hashCode` in class `Permission`
      Returns:
        a hash code value for this object.
      See Also:
        `Object.equals(java.lang.Object)`, `System.identityHashCode(java.lang.Object)`

    - #### implies

          public boolean implies​(Permission p)

      Checks if the specified permission is "implied" by this object.

      More specifically, this method returns true if:

      - p's class is the same as this object's class, and
      - p's name equals or (in the case of wildcards) is implied by this object's name. For example, "a.b.*" implies "a.b.c".
      Specified by:
        `implies` in class `Permission`
      Parameters:
        `p` - the permission to check against.
      Returns:
        true if the passed permission is equal to or implied by this permission, false otherwise.