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.