Package com.iizix.user
Class UserInfoBase
java.lang.Object
com.iizix.user.UserInfoBase
- Direct Known Subclasses:
BasicUserInfo
The base of user information in the database. The implementing subclass in the server extends from this class.
- Author:
- Christopher Mindus
Field Summary
Modifier and TypeFieldDescriptionfinal long
The 'created' time in milliseconds since the epoch.final String
The 'email', nevernull
(max 254 chars).final long
The unique ID.The unpacked 'lang_codes' as language codes the user wishes to use.static final int
The maximum length of the user name.final String
The 'user_name', nevernull
(max 254 chars).final String
The 'user_name_lower', lower case using Locale.ENGLISH of 'user_name', nevernull
(max 254 chars).Constructor Summary
ModifierConstructorDescriptionprotected
UserInfoBase
(long id, String userName, String userNameLower, String email, String langCode, long created) Constructor for the user info base.Method Summary
Modifier and TypeMethodDescriptionabstract UserLocaleString
Checks if the user is allowed to change his password.final boolean
Checks for equality.Gets the cached and current user details.getDetails
(boolean reload) Gets the (cached and current) user details.getDetails
(Connection conn, boolean reload) Gets the user details.abstract UserLocaleString
Gets the 'disabled' reason, null for user not disabled.abstract int
Gets the 'fail_count' value, zero for never.abstract long
Gets the 'last_fail' time in milliseconds since the epoch, 0 for never.abstract long
Gets the 'last_login' time in milliseconds since the epoch, 0 for never.abstract boolean
Returns if the password must be changed upon next login.
Field Details
MAXIMUM_USER_NAME_LENGTH
public static final int MAXIMUM_USER_NAME_LENGTHThe maximum length of the user name.- See Also:
id
public final long idThe unique ID.userName
The 'user_name', nevernull
(max 254 chars).userNameLower
The 'user_name_lower', lower case using Locale.ENGLISH of 'user_name', nevernull
(max 254 chars).email
The 'email', nevernull
(max 254 chars).langCodes
The unpacked 'lang_codes' as language codes the user wishes to use. The value isnull
if there are no language codes. The list is unmodifiable.created
public final long createdThe 'created' time in milliseconds since the epoch.
Constructor Details
UserInfoBase
protected UserInfoBase(long id, String userName, String userNameLower, String email, String langCode, long created) Constructor for the user info base.- Parameters:
id
- The unique user ID.userName
- The user name, nevernull
.userNameLower
- The user name in lower case, nevernull
.email
- The email, nevernull
.langCode
- The language codes, comma separated,null
for none.created
- The creation date (milliseconds since the epoch).
Method Details
equals
Checks for equality. Checks only if two user ID's are equal.mustChangePassword
public abstract boolean mustChangePassword()Returns if the password must be changed upon next login.- Returns:
- Flag to change the password.
canChangePassword
Checks if the user is allowed to change his password. Note that this does not check if the user id disabled: please do so usinggetDisabledReason()
.- Returns:
null
if allowed and user can change his password, otherwise aUserLocaleString
instance for the reason of the password being fixed and that it can never be changed.
getLastLogin
public abstract long getLastLogin()Gets the 'last_login' time in milliseconds since the epoch, 0 for never.getLastFail
public abstract long getLastFail()Gets the 'last_fail' time in milliseconds since the epoch, 0 for never.getFailCount
public abstract int getFailCount()Gets the 'fail_count' value, zero for never.getDisabledReason
Gets the 'disabled' reason, null for user not disabled.- Returns:
- The user 'disabled' reason, or
null
for user not disabled.
getDetails
Gets the cached and current user details. Details are e.g. fax number, profile picture.- Returns:
- A new read-only copy of the details with name as key and the value for it.
getDetails
Gets the (cached and current) user details. Details are e.g. fax number, profile picture.Note: If you have a JDBC connection, use
getDetails(Connection, boolean)
instead for efficiency.- Parameters:
reload
- Reload flag from database.- Returns:
- If reload is false, a cached read-only map with the details name as key and the value for it, otherwise a fresh copy of the details from the database.
- Throws:
SQLException
- For SQL errors.
getDetails
Gets the user details. Details are e.g. fax number, profile picture. If not previously loaded, the "reload" flag is ignored and the details are loaded.- Parameters:
conn
- The connection, null for cached values only.reload
- Reload flag, i.e. instructs a full reload of all details from the database.- Returns:
- A cached read-only map with the details name as key and the value for it.
- Throws:
SQLException
- For SQL errors.