Package org.apache.catalina.users

## Class AbstractGroup

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

- All Implemented Interfaces:
    `java.security.Principal`, `Group`
  Direct Known Subclasses:
    `GenericGroup`

      public abstract class AbstractGroup
      extends java.lang.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 java.lang.String` | `description` | The description of this group.
    `protected java.lang.String` | `groupname` | The group name of this group.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AbstractGroup()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract void` | `addRole​(Role role)` | Add a new `Role` to those assigned specifically to this group.
    `java.lang.String` | `getDescription()` | Return the description of this group.
    `java.lang.String` | `getGroupname()` | Return the group name of this group, which must be unique within the scope of a `UserDatabase`.
    `java.lang.String` | `getName()` | Make the principal name the same as the group name.
    `abstract java.util.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 java.util.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​(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 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 java.lang.String description

      The description of this group.

    - #### groupname

          protected java.lang.String groupname

      The group name of this group.

  - ### Constructor Detail

    - #### AbstractGroup

          public AbstractGroup()

  - ### Method Detail

    - #### getDescription

          public java.lang.String getDescription()

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

    - #### setDescription

          public void setDescription​(java.lang.String description)

      Set the description of this group.
      Specified by:
        `setDescription` in interface `Group`
      Parameters:
        `description` - The new description

    - #### getGroupname

          public java.lang.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​(java.lang.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 java.util.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 java.util.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 java.lang.String getName()

      Make the principal name the same as the group name.
      Specified by:
        `getName` in interface `java.security.Principal`