Package org.apache.catalina.users

# Class AbstractGroup

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

All Implemented Interfaces:
  `Principal`, `Group`

Direct Known Subclasses:
  `MemoryGroup`

public abstract class AbstractGroup extends Object implements Group

Convenience base class for `Group` implementations.

Since:
  4.1
Author:
  Craig R. McClanahan

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected String`
  `description`
  The description of this group.
  `protected String`
  `groupname`
  The group name of this group.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AbstractGroup()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `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 Details

  - ### description

    protected String description
    The description of this group.

  - ### groupname

    protected String groupname
    The group name of this group.

- ## Constructor Details

  - ### AbstractGroup

    public AbstractGroup()

- ## Method Details

  - ### 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`