Package com.sas.lsaf.security.user

## Class User

- java.lang.Object
- - com.sas.lsaf.core.AbstractIdentifiable
  - - com.sas.lsaf.security.user.UserDescriptor
    - - com.sas.lsaf.security.user.User

- All Implemented Interfaces:
    `Identifiable`, `Principal`, `java.io.Serializable`

      public class User
      extends UserDescriptor

  Full representation of a user account thats defined in the system. A user account has a unique user ID that can be used to login and to identify a user account in the system.
  Since:
    1.2
  See Also:
    `User`, `UserService`, Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `User​(java.lang.String id, java.lang.String userId, java.lang.String displayName, java.lang.String firstName, java.lang.String lastName, java.lang.String department, java.lang.String phone, java.lang.String email, java.util.List<Attribute> attributes, AccountInfo accountInfo, PasswordInfo passwordInfo, LockedInfo lockedInfo, LoginInfo loginInfo, long revision)` | It is not intended or recommended that the consumer of this API construct these objects.
    `User​(java.lang.String id, java.lang.String userId, java.lang.String displayName, java.lang.String createdBy, java.util.Date created, java.lang.String lastModifiedBy, java.util.Date lastModified, java.lang.String firstName, java.lang.String lastName, java.lang.String department, java.lang.String phone, java.lang.String email, java.util.List<Attribute> attributes, AccountInfo accountInfo, PasswordInfo passwordInfo, LockedInfo lockedInfo, LoginInfo loginInfo, long revision)` | It is not intended or recommended that the consumer of this API construct these objects.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `equals​(java.lang.Object obj)` |
    `AccountInfo` | `getAccountInfo()` | Gets the account details for a user account.
    `java.util.List<Attribute>` | `getAttributes()` | Gets the list of extended attributes defined for a user account.
    `java.lang.String` | `getDepartment()` | Gets the department value for a user account.
    `java.lang.String` | `getEmail()` | Gets the email for a user account.
    `java.lang.String` | `getFirstName()` | Gets the first name for a user account.
    `java.lang.String` | `getLastName()` | Gets the last name for a user account.
    `LockedInfo` | `getLockedInfo()` | Gets the account locking details for a user account.
    `LoginInfo` | `getLoginInfo()` | Gets the login details for a user account.
    `PasswordInfo` | `getPasswordInfo()` | Gets the password details for a user account.
    `java.lang.String` | `getPhone()` | Gets the phone number for a user account.
    `long` | `getRevision()` | Gets the internal revision number of an object.
    `int` | `hashCode()` |
    `void` | `setAttributes​(java.util.List<Attribute> attributes)` | Sets the extended attribute values for a user account.
    `void` | `setDepartment​(java.lang.String department)` | Sets the department value for a user account.
    `void` | `setEmail​(java.lang.String email)` | Sets the email address value for a user account.
    `void` | `setFirstName​(java.lang.String firstName)` | Sets the first name for a user account.
    `void` | `setLastName​(java.lang.String lastName)` | Sets the last name for a user account.
    `void` | `setPhone​(java.lang.String phone)` | Sets the phone number for a user account.
    `java.lang.String` | `toString()` |

    - ### Methods inherited from class com.sas.lsaf.security.user.UserDescriptor

      `getCreated, getCreatedBy, getDisplayName, getLastModified, getLastModifiedBy, getPrincipalId, getPrincipalName, getUserId, setDisplayName`

    - ### Methods inherited from class com.sas.lsaf.core.AbstractIdentifiable

      `getId, getTypeId`

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

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

    - ### Methods inherited from interface com.sas.lsaf.core.Identifiable

      `getId, getTypeId`

- - ### Constructor Detail

    - #### User

          public User​(java.lang.String id,
                      java.lang.String userId,
                      java.lang.String displayName,
                      java.lang.String firstName,
                      java.lang.String lastName,
                      java.lang.String department,
                      java.lang.String phone,
                      java.lang.String email,
                      java.util.List<Attribute> attributes,
                      AccountInfo accountInfo,
                      PasswordInfo passwordInfo,
                      LockedInfo lockedInfo,
                      LoginInfo loginInfo,
                      long revision)

      It is not intended or recommended that the consumer of this API construct these objects. They should only deal with the users returned by the API.
      Parameters:
        `id` - the unique identifier of the user account.
        `userId` - the user ID of the user account.
        `displayName` - the display name of the user account.
        `firstName` - the first name for the user account.
        `lastName` - the last name for the user account.
        `department` - the department value for the user account.
        `phone` - the phone number for the user account.
        `email` - the email for the user account.
        `attributes` - the list of extended attribute values for the user account.
        `accountInfo` - the account details for the user account.
        `passwordInfo` - the password details for the user account.
        `lockedInfo` - the account locking details for the user account.
        `loginInfo` - the login details for the user account.
        `revision` - the internal revision number of this object.

    - #### User

          public User​(java.lang.String id,
                      java.lang.String userId,
                      java.lang.String displayName,
                      java.lang.String createdBy,
                      java.util.Date created,
                      java.lang.String lastModifiedBy,
                      java.util.Date lastModified,
                      java.lang.String firstName,
                      java.lang.String lastName,
                      java.lang.String department,
                      java.lang.String phone,
                      java.lang.String email,
                      java.util.List<Attribute> attributes,
                      AccountInfo accountInfo,
                      PasswordInfo passwordInfo,
                      LockedInfo lockedInfo,
                      LoginInfo loginInfo,
                      long revision)

      It is not intended or recommended that the consumer of this API construct these objects. They should only deal with the users returned by the API.
      Parameters:
        `id` - the unique identifier of the user account.
        `userId` - the user ID of the user account.
        `displayName` - the display name of the user account.
        `createdBy` - The user who created the user.
        `created` - The date on which the user was created.
        `lastModifiedBy` - The user who last modified the user.
        `lastModified` - The date on which the user was last modified.
        `firstName` - the first name for the user account.
        `lastName` - the last name for the user account.
        `department` - the department value for the user account.
        `phone` - the phone number for the user account.
        `email` - the email for the user account.
        `attributes` - the list of extended attribute values for the user account.
        `accountInfo` - the account details for the user account.
        `passwordInfo` - the password details for the user account.
        `lockedInfo` - the account locking details for the user account.
        `loginInfo` - the login details for the user account.
        `revision` - the internal revision number of this object.

  - ### Method Detail

    - #### getRevision

          public long getRevision()

      Gets the internal revision number of an object.
      Returns:
        The internal revision number of an object.

    - #### getAccountInfo

          public AccountInfo getAccountInfo()

      Gets the account details for a user account.
      Returns:
        The account details for a user account.

    - #### getPasswordInfo

          public PasswordInfo getPasswordInfo()

      Gets the password details for a user account.
      Returns:
        The password details for a user account.

    - #### getLockedInfo

          public LockedInfo getLockedInfo()

      Gets the account locking details for a user account.
      Returns:
        The account locking details for a user account.

    - #### getLoginInfo

          public LoginInfo getLoginInfo()

      Gets the login details for a user account.
      Returns:
        The login details for a user account.

    - #### getFirstName

          public java.lang.String getFirstName()

      Gets the first name for a user account.
      Returns:
        The first name for a user account.

    - #### setFirstName

          public void setFirstName​(java.lang.String firstName)

      Sets the first name for a user account.
      Parameters:
        `firstName` - the firstName to set for a user account.

    - #### getLastName

          public java.lang.String getLastName()

      Gets the last name for a user account.
      Returns:
        The last name for a user account.

    - #### setLastName

          public void setLastName​(java.lang.String lastName)

      Sets the last name for a user account.
      Parameters:
        `lastName` - the lastName to set for a user account.

    - #### getEmail

          public java.lang.String getEmail()

      Gets the email for a user account.
      Returns:
        The email for a user account.

    - #### setEmail

          public void setEmail​(java.lang.String email)

      Sets the email address value for a user account.
      Parameters:
        `email` - the email address for a user account.

    - #### getDepartment

          public java.lang.String getDepartment()

      Gets the department value for a user account.
      Returns:
        The department value for a user account.

    - #### setDepartment

          public void setDepartment​(java.lang.String department)

      Sets the department value for a user account.
      Parameters:
        `department` - the department to set for a user account.

    - #### getPhone

          public java.lang.String getPhone()

      Gets the phone number for a user account.
      Returns:
        The phone number for a user account.

    - #### setPhone

          public void setPhone​(java.lang.String phone)

      Sets the phone number for a user account.
      Parameters:
        `phone` - the phone number to set for a user account.

    - #### getAttributes

          public java.util.List<Attribute> getAttributes()

      Gets the list of extended attributes defined for a user account.
      Returns:
        The extended attributes for a user account.

    - #### setAttributes

          public void setAttributes​(java.util.List<Attribute> attributes)

      Sets the extended attribute values for a user account.
      Parameters:
        `attributes` - the list of extended attribute values for a user account.

    - #### hashCode

          public int hashCode()

      Specified by:
        `hashCode` in interface `Principal`
      Overrides:
        `hashCode` in class `UserDescriptor`

    - #### equals

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

      Specified by:
        `equals` in interface `Principal`
      Overrides:
        `equals` in class `UserDescriptor`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `UserDescriptor`