Package org.apache.catalina.users

## Class AbstractGroup

- java.lang.Object
- - org.apache.catalina.users.AbstractGroup

All Implemented Interfaces:
  `Principal`, `Group`

Direct Known Subclasses:
  `GenericGroup`

    public abstract class AbstractGroup
    extends Object
    implements Group

Convenience base class for `Group` implementations.

Since:
  4.1
Author:
  Craig R. McClanahan

### Field Summary

Fields
`protected String` `description` The description of this group.
`protected String` `groupname` The group name of this group.

### Constructor Summary

Constructors
`AbstractGroup()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`abstract void` `addRole​(Role role)` Add a new `Role` to those assigned specifically to this group.
`String` `getDescription()` Return the description of this group.
`String` `getGroupname()` Return the group name of this group, which must be unique within the scope of a `UserDatabase`.
`String` `getName()` Make the principal name the same as the group name.
`abstract Iterator<Role>` `getRoles()` Return the set of `Role`s assigned specifically to this group.
`abstract UserDatabase` `getUserDatabase()` Return the `UserDatabase` within which this Group is defined.
`abstract Iterator<User>` `getUsers()` Return an Iterator over the set of `User`s that are members of this group.
`abstract boolean` `isInRole​(Role role)` Is this group specifically assigned the specified `Role`?
`abstract void` `removeRole​(Role role)` Remove a `Role` from those assigned to this group.
`abstract 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 class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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

`equals, hashCode, implies, toString`

### Field Detail

#### description

    protected String description

The description of this group.

#### groupname

    protected String groupname

The group name of this group.

### Constructor Detail

#### AbstractGroup

    public AbstractGroup()

### Method Detail

#### getDescription

    public String getDescription()

Return the description of this group.

Specified by:
  `getDescription` in interface `Group`
Returns:
  the description of this group.

#### setDescription

    public void setDescription​(String description)

Set the description of this group.

Specified by:
  `setDescription` in interface `Group`
Parameters:
  `description` - The new description

#### getGroupname

    public String getGroupname()

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

Specified by:
  `getGroupname` in interface `Group`
Returns:
  the group name of this group, which must be unique within the scope of a `UserDatabase`.

#### setGroupname

    public void setGroupname​(String groupname)

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

Specified by:
  `setGroupname` in interface `Group`
Parameters:
  `groupname` - The new group name

#### getRoles

    public abstract Iterator<Role> getRoles()

Return the set of `Role`s assigned specifically to this group.

Specified by:
  `getRoles` in interface `Group`
Returns:
  the set of `Role`s assigned specifically to this group.

#### getUserDatabase

    public abstract UserDatabase getUserDatabase()

Return the `UserDatabase` within which this Group is defined.

Specified by:
  `getUserDatabase` in interface `Group`
Returns:
  the `UserDatabase` within which this Group is defined.

#### getUsers

    public abstract Iterator<User> getUsers()

Return an Iterator over the set of `User`s that are members of this group.

Specified by:
  `getUsers` in interface `Group`
Returns:
  the set of `User`s that are members of this group.

#### addRole

    public abstract void addRole​(Role role)

Add a new `Role` to those assigned specifically to this group.

Specified by:
  `addRole` in interface `Group`
Parameters:
  `role` - The new role

#### isInRole

    public abstract boolean isInRole​(Role role)

Is this group specifically assigned the specified `Role`?

Specified by:
  `isInRole` in interface `Group`
Parameters:
  `role` - The role to check
Returns:
  `true` if the group is assigned to the specified role otherwise `false`

#### removeRole

    public abstract void removeRole​(Role role)

Remove a `Role` from those assigned to this group.

Specified by:
  `removeRole` in interface `Group`
Parameters:
  `role` - The old role

#### removeRoles

    public abstract void removeRoles()

Remove all `Role`s from those assigned to this group.

Specified by:
  `removeRoles` in interface `Group`

#### getName

    public String getName()

Make the principal name the same as the group name.

Specified by:
  `getName` in interface `Principal`