Package org.apache.catalina.users

## Class GenericGroup<UD extends UserDatabase>

- java.lang.Object
- - org.apache.catalina.users.AbstractGroup
  - - org.apache.catalina.users.GenericGroup<UD>

Type Parameters:
  `UD` - The specific type of UserDase with which this group is associated

All Implemented Interfaces:
  `java.security.Principal`, `Group`

Direct Known Subclasses:
  `MemoryGroup`

    public class GenericGroup<UD extends UserDatabase>
    extends AbstractGroup

Concrete implementation of `Group` for a `UserDatabase`.

Author:
  Craig R. McClanahan

### Field Summary

Fields
`protected UD` `database` The `UserDatabase` that owns this group.
`protected java.util.concurrent.CopyOnWriteArrayList<Role>` `roles` The set of `Role`s associated with this group.

### Fields inherited from class org.apache.catalina.users.AbstractGroup

`description, groupname`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addRole​(Role role)` Add a new `Role` to those assigned specifically to this group.
`boolean` `equals​(java.lang.Object obj)`
`java.util.Iterator<Role>` `getRoles()` Return the set of `Role`s assigned specifically to this group.
`UserDatabase` `getUserDatabase()` Return the `UserDatabase` within which this Group is defined.
`java.util.Iterator<User>` `getUsers()` Return the set of `User`s that are members of this group.
`int` `hashCode()`
`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.

### Methods inherited from class org.apache.catalina.users.AbstractGroup

`getDescription, getGroupname, getName, setDescription, setGroupname`

### Methods inherited from class java.lang.Object

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

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

`implies, toString`

### Field Detail

#### database

    protected final UD extends UserDatabase database

The `UserDatabase` that owns this group.

#### roles

    protected final java.util.concurrent.CopyOnWriteArrayList<Role> roles

The set of `Role`s associated with this group.

### Method Detail

#### getRoles

    public java.util.Iterator<Role> getRoles()

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

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

#### getUserDatabase

    public UserDatabase getUserDatabase()

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

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

#### getUsers

    public java.util.Iterator<User> getUsers()

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

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

#### addRole

    public void addRole​(Role role)

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

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

#### isInRole

    public boolean isInRole​(Role role)

Is this group specifically assigned the specified `Role`?

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

#### removeRole

    public void removeRole​(Role role)

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

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

#### removeRoles

    public void removeRoles()

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

Specified by:
  `removeRoles` in interface `Group`
Specified by:
  `removeRoles` in class `AbstractGroup`

#### equals

    public boolean equals​(java.lang.Object obj)

Specified by:
  `equals` in interface `java.security.Principal`
Overrides:
  `equals` in class `java.lang.Object`

#### hashCode

    public int hashCode()

Specified by:
  `hashCode` in interface `java.security.Principal`
Overrides:
  `hashCode` in class `java.lang.Object`