Package org.apache.catalina

# Interface Group

All Superinterfaces:
  `Principal`

All Known Implementing Classes:
  `AbstractGroup`, `MemoryGroup`

public interface Group extends Principal

Abstract representation of a group of `User`s in a `UserDatabase`. Each user that is a member of this group inherits the `Role`s assigned to the group.

Since:
  4.1
Author:
  Craig R. McClanahan

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addRole(Role role)`
  Add a new `Role` to those assigned specifically to this group.
  `String`
  `getDescription()`
  `String`
  `getGroupname()`
  `Iterator<Role>`
  `getRoles()`
  `UserDatabase`
  `getUserDatabase()`
  `Iterator<User>`
  `getUsers()`
  `boolean`
  `isInRole(Role role)`
  Is this group specifically assigned the specified `Role`?
  `void`
  `removeRole(Role role)`
  Remove a `Role` from those assigned to this group.
  `void`
  `removeRoles()`
  Remove all `Role`s from those assigned to this group.
  `void`
  `setDescription(String description)`
  Set the description of this group.
  `void`
  `setGroupname(String groupname)`
  Set the group name of this group, which must be unique within the scope of a `UserDatabase`.

  ### Methods inherited from interface java.security.Principal

  `equals, getName, hashCode, implies, toString`

- ## Method Details

  - ### getDescription

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

  - ### setDescription

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

  - ### getGroupname

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

  - ### setGroupname

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

  - ### getRoles

    Iterator<Role> getRoles()
    Returns:
      the set of `Role`s assigned specifically to this group.

  - ### getUserDatabase

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

  - ### getUsers

    Iterator<User> getUsers()
    Returns:
      the set of `User`s that are members of this group.

  - ### addRole

    void addRole(Role role)
    Add a new `Role` to those assigned specifically to this group.
    Parameters:
      `role` - The new role

  - ### isInRole

    boolean isInRole(Role role)
    Is this group specifically assigned the specified `Role`?
    Parameters:
      `role` - The role to check
    Returns:
      `true` if the group is assigned to the specified role otherwise `false`

  - ### removeRole

    void removeRole(Role role)
    Remove a `Role` from those assigned to this group.
    Parameters:
      `role` - The old role

  - ### removeRoles

    void removeRoles()
    Remove all `Role`s from those assigned to this group.