Package org.apache.catalina

## Interface Group

All Superinterfaces:
  `java.security.Principal`

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

    public interface Group
    extends java.security.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

All Methods Instance Methods Abstract Methods
`void` `addRole​(Role role)` Add a new `Role` to those assigned specifically to this group.
`java.lang.String` `getDescription()`
`java.lang.String` `getGroupname()`
`java.util.Iterator<Role>` `getRoles()`
`UserDatabase` `getUserDatabase()`
`java.util.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​(java.lang.String description)` Set the description of this group.
`void` `setGroupname​(java.lang.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 Detail

#### getDescription

    java.lang.String getDescription()

Returns:
  the description of this group.

#### setDescription

    void setDescription​(java.lang.String description)

Set the description of this group.

Parameters:
  `description` - The new description

#### getGroupname

    java.lang.String getGroupname()

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

#### setGroupname

    void setGroupname​(java.lang.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

    java.util.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

    java.util.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.