## org.apache.catalina.users
Class MemoryUser

    java.lang.Object
      org.apache.catalina.users.AbstractUser
          org.apache.catalina.users.MemoryUser

All Implemented Interfaces:
  java.security.Principal, User

public class MemoryUser
extends AbstractUser

Concrete implementation of `User` for the `MemoryUserDatabase` implementation of `UserDatabase`.

Since:
  4.1
Version:
  $Revision: 1.7 $ $Date: 2004/08/26 21:42:04 $
Author:
  Craig R. McClanahan

Field Summary
`protected MemoryUserDatabase` `database` The `MemoryUserDatabase` that owns this user.
`protected java.util.ArrayList` `groups` The set of `Group`s that this user is a member of.
`protected java.util.ArrayList` `roles` The set of `Role`s associated with this user.

Fields inherited from class org.apache.catalina.users.AbstractUser
`fullName, password, username`

Method Summary
`void` `addGroup(Group group)` Add a new `Group` to those this user belongs to.
`void` `addRole(Role role)` Add a new `Role` to those assigned specifically to this user.
`java.util.Iterator` `getGroups()` Return the set of `Group`s to which this user belongs.
`java.util.Iterator` `getRoles()` Return the set of `Role`s assigned specifically to this user.
`UserDatabase` `getUserDatabase()` Return the `UserDatabase` within which this User is defined.
`boolean` `isInGroup(Group group)` Is this user in the specified group?
`boolean` `isInRole(Role role)` Is this user specifically assigned the specified `Role`? This method does NOT check for roles inherited based on `Group` membership.
`void` `removeGroup(Group group)` Remove a `Group` from those this user belongs to.
`void` `removeGroups()` Remove all `Group`s from those this user belongs to.
`void` `removeRole(Role role)` Remove a `Role` from those assigned to this user.
`void` `removeRoles()` Remove all `Role`s from those assigned to this user.
`java.lang.String` `toString()` Return a String representation of this user in XML format.

Methods inherited from class org.apache.catalina.users.AbstractUser
`getFullName, getName, getPassword, getUsername, setFullName, setPassword, setUsername`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface java.security.Principal
`equals, hashCode`

Field Detail

### database

    protected MemoryUserDatabase database

  The `MemoryUserDatabase` that owns this user.

### groups

    protected java.util.ArrayList groups

  The set of `Group`s that this user is a member of.

### roles

    protected java.util.ArrayList roles

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

Method Detail

### getGroups

    public java.util.Iterator getGroups()

  Return the set of `Group`s to which this user belongs.

  Specified by:
    `getGroups` in interface `User`
  Specified by:
    `getGroups` in class `AbstractUser`

### getRoles

    public java.util.Iterator getRoles()

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

  Specified by:
    `getRoles` in interface `User`
  Specified by:
    `getRoles` in class `AbstractUser`

### getUserDatabase

    public UserDatabase getUserDatabase()

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

### addGroup

    public void addGroup(Group group)

  Add a new `Group` to those this user belongs to.

  Specified by:
    `addGroup` in interface `User`
  Specified by:
    `addGroup` in class `AbstractUser`
  Parameters:
    `group` - The new group

### addRole

    public void addRole(Role role)

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

  Specified by:
    `addRole` in interface `User`
  Specified by:
    `addRole` in class `AbstractUser`
  Parameters:
    `role` - The new role

### isInGroup

    public boolean isInGroup(Group group)

  Is this user in the specified group?

  Specified by:
    `isInGroup` in interface `User`
  Specified by:
    `isInGroup` in class `AbstractUser`
  Parameters:
    `group` - The group to check

### isInRole

    public boolean isInRole(Role role)

  Is this user specifically assigned the specified `Role`? This method does NOT check for roles inherited based on `Group` membership.

  Specified by:
    `isInRole` in interface `User`
  Specified by:
    `isInRole` in class `AbstractUser`
  Parameters:
    `role` - The role to check

### removeGroup

    public void removeGroup(Group group)

  Remove a `Group` from those this user belongs to.

  Specified by:
    `removeGroup` in interface `User`
  Specified by:
    `removeGroup` in class `AbstractUser`
  Parameters:
    `group` - The old group

### removeGroups

    public void removeGroups()

  Remove all `Group`s from those this user belongs to.

  Specified by:
    `removeGroups` in interface `User`
  Specified by:
    `removeGroups` in class `AbstractUser`

### removeRole

    public void removeRole(Role role)

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

  Specified by:
    `removeRole` in interface `User`
  Specified by:
    `removeRole` in class `AbstractUser`
  Parameters:
    `role` - The old role

### removeRoles

    public void removeRoles()

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

  Specified by:
    `removeRoles` in interface `User`
  Specified by:
    `removeRoles` in class `AbstractUser`

### toString

    public java.lang.String toString()

  Return a String representation of this user in XML format.

  IMPLEMENTATION NOTE - For backwards compatibility, the reader that processes this entry will accept either `username` or name for the username property.

Copyright ? 2000-2002 Apache Software Foundation. All Rights Reserved.