# Interface Role

All Superinterfaces:
  `Principal`

All Known Implementing Classes:
  `AbstractRole, GenericRole, MemoryRole`

public interface Role extends Principal

Abstract representation of a security role, suitable for use in environments like JAAS that want to deal with `Principals`.

Since:
  4.1

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getDescription()`
  `String`
  `getRolename()`
  `UserDatabase`
  `getUserDatabase()`
  `void`
  `setDescription(String description)`
  Set the description of this role.
  `void`
  `setRolename(String rolename)`
  Set the role name of this role, which must be unique within the scope of a `UserDatabase`.

  ### Methods inherited from interface Principal

  `equals, getName, hashCode, implies, toString`

- ## Method Details

  - ### getDescription

    String getDescription()
    Returns:
      the description of this role.

  - ### setDescription

    void setDescription(String description)
    Set the description of this role.
    Parameters:
      `description` - The new description

  - ### getRolename

    String getRolename()
    Returns:
      the role name of this role, which must be unique within the scope of a `UserDatabase`.

  - ### setRolename

    void setRolename(String rolename)
    Set the role name of this role, which must be unique within the scope of a `UserDatabase`.
    Parameters:
      `rolename` - The new role name

  - ### getUserDatabase

    UserDatabase getUserDatabase()
    Returns:
      the `UserDatabase` within which this Role is defined.