Class GenericUser<UD extends UserDatabase>

  • Type Parameters:
    UD - The specific type of UserDase with which this role is associated
    All Implemented Interfaces:
    java.security.Principal, User
    Direct Known Subclasses:
    MemoryUser

    public class GenericUser<UD extends UserDatabase>
    extends AbstractUser

    Concrete implementation of User for a UserDatabase.

    Author:
    Craig R. McClanahan
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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.
      boolean equals​(java.lang.Object obj)  
      java.util.Iterator<Group> getGroups()
      Return the set of Groups to which this user belongs.
      java.util.Iterator<Role> getRoles()
      Return the set of Roles assigned specifically to this user.
      UserDatabase getUserDatabase()
      Return the UserDatabase within which this User is defined.
      int hashCode()  
      boolean isInGroup​(Group group)
      Is this user in the specified group?
      boolean isInRole​(Role role)
      Is this user specifically assigned the specified Role?
      void removeGroup​(Group group)
      Remove a Group from those this user belongs to.
      void removeGroups()
      Remove all Groups from those this user belongs to.
      void removeRole​(Role role)
      Remove a Role from those assigned to this user.
      void removeRoles()
      Remove all Roles from those assigned to this user.
      void setFullName​(java.lang.String fullName)
      Set the full name of this user.
      void setPassword​(java.lang.String password)
      Set the logon password of this user, optionally prefixed with the identifier of an encoding scheme surrounded by curly braces, such as {md5}xxxxx.
      void setUsername​(java.lang.String username)
      Set the logon username of this user, which must be unique within the scope of a UserDatabase.
      • 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

      • groups

        protected final java.util.concurrent.CopyOnWriteArrayList<Group> groups
        The set of Groups that this user is a member of.
      • roles

        protected final java.util.concurrent.CopyOnWriteArrayList<Role> roles
        The set of Roles associated with this user.
    • Method Detail

      • getGroups

        public java.util.Iterator<Group> getGroups()
        Return the set of Groups to which this user belongs.
        Specified by:
        getGroups in interface User
        Specified by:
        getGroups in class AbstractUser
        Returns:
        the set of Groups to which this user belongs.
      • getRoles

        public java.util.Iterator<Role> getRoles()
        Return the set of Roles assigned specifically to this user.
        Specified by:
        getRoles in interface User
        Specified by:
        getRoles in class AbstractUser
        Returns:
        the set of Roles assigned specifically to this user.
      • 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
        Returns:
        true if the user is in the specified group
      • 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
        Returns:
        true if the user has the specified role
      • 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
      • setFullName

        public void setFullName​(java.lang.String fullName)
        Description copied from class: AbstractUser
        Set the full name of this user.
        Specified by:
        setFullName in interface User
        Overrides:
        setFullName in class AbstractUser
        Parameters:
        fullName - The new full name
      • setPassword

        public void setPassword​(java.lang.String password)
        Description copied from class: AbstractUser
        Set the logon password of this user, optionally prefixed with the identifier of an encoding scheme surrounded by curly braces, such as {md5}xxxxx.
        Specified by:
        setPassword in interface User
        Overrides:
        setPassword in class AbstractUser
        Parameters:
        password - The new logon password
      • setUsername

        public void setUsername​(java.lang.String username)
        Description copied from class: AbstractUser
        Set the logon username of this user, which must be unique within the scope of a UserDatabase.
        Specified by:
        setUsername in interface User
        Overrides:
        setUsername in class AbstractUser
        Parameters:
        username - The new logon username
      • 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