Class UserProfile
- All Implemented Interfaces:
de.uplanet.lucy.server.profile.IUserProfile,AutoCloseable
Used to store properties of a users's profile. The values may be of any Object-derived
class such as strings, date values, integer or floating point values, hash maps and so on.
Users MUST call done() when finished using the user profile to
ensure that all resources such as SQL statements are properly closed and freed.
Users are encouraged to use URN-like property names, e.g.
urn:schemas-intrexx-de:profile:my-property,
to make their applications namespace aware.
The class operates on the LCPROFILE table:
(
GUIDUSER VARCHAR(40) NOT NULL,
STRNAME VARCHAR(255) NOT NULL,
INTTYPEID INTEGER NOT NULL,
INTVERSION INTEGER NOT NULL,
TXTVALUE TEXT
)
ALTER TABLE LCPROFILE WITH NOCHECK ADD CONSTRAINT PK_LCPROFILE
PRIMARY KEY CLUSTERED (GUIDUSER, STRNAME)
If
IUserProfile.USE_CACHE is used, read properties are buffered. So subsequent gets
will not result in database read operations. For this reason changes in the database that are
made from different instances may not be visible if the own instance read the property before
the foreign change occurred.-
Field Summary
Fields inherited from interface de.uplanet.lucy.server.profile.IUserProfile
DEFAULT_USER_ID, ERR_RET_VAL, NO_CACHE, NO_PROP_RET_VAL, USE_CACHE, VERSION -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()This method does nothing.static UserProfilecreateInstance(de.uplanet.jdbc.JdbcConnection p_conn, String p_strUserId, int p_iCacheUsage) Factory method to create a user profile.static voidDelete all profile properties whose names start with the specified prefix.static voidDelete all profile properties whose names start with the specified prefix.static voiddeleteExceptForDefaultUser(de.uplanet.jdbc.JdbcConnection p_conn, String p_strNamePrefix) Delete all profile properties that do not belong to the default user and whose names start with the specified prefix.voiddone()Get a user profile property.<T> TGet a user profile property.getDefault(String p_strName) Get a default profile property.<T> TgetDefault(String p_strName, T p_objDefault) Get a default profile property.getUserDefined(String p_strName) <T> TgetUserDefined(String p_strName, T p_objDefault) voidSet a user profile property.voidputDefault(String p_strName, Object p_objValue) Set a default profile property.booleanuserOverridesProperty(String p_strName) Check if the current user overrides the given property.booleanuserOverridesProperty(String p_strName, String p_strUserId) Check if a given user overrides the given property.
-
Method Details
-
createInstance
public static UserProfile createInstance(de.uplanet.jdbc.JdbcConnection p_conn, String p_strUserId, int p_iCacheUsage) Factory method to create a user profile.- Parameters:
p_conn- An open database connection.p_strUserId- The ID of the user for whom the profile should be created.p_iCacheUsage-IUserProfile.NO_CACHEorIUserProfile.USE_CACHE.- Returns:
- A newly created user profile.
- Throws:
UnsupportedOperationException- If an invalid cache flag is supplied.
-
getUserDefined
- Specified by:
getUserDefinedin interfacede.uplanet.lucy.server.profile.IUserProfile
-
getUserDefined
- Specified by:
getUserDefinedin interfacede.uplanet.lucy.server.profile.IUserProfile
-
get
Get a user profile property.- Specified by:
getin interfacede.uplanet.lucy.server.profile.IUserProfile- Parameters:
p_strName- The name of the property to be retrieved.- Returns:
- The property or
IUserProfile.NO_PROP_RET_VALif the property does not exist orIUserProfile.ERR_RET_VALif an error occurred.
-
get
Get a user profile property.If the specified property does not exist or any error occurs while retrieving the property, the specified fallback object is returned.
- Specified by:
getin interfacede.uplanet.lucy.server.profile.IUserProfile- Parameters:
p_strName- The name of the property to be retrieved.p_objDefault- The property to be returned in error conditions.- Returns:
- The property or
p_objDefaultif the property does not exist or if an error occurred.
-
getDefault
Get a default profile property.- Specified by:
getDefaultin interfacede.uplanet.lucy.server.profile.IUserProfile- Parameters:
p_strName- The name of the property to be retrieved.- Returns:
- The property or
IUserProfile.NO_PROP_RET_VALif the property does not exist orIUserProfile.ERR_RET_VALif an error occurred.
-
getDefault
Get a default profile property.If the specified property does not exist or any error occurs while retrieving the property, the specified fallback object is returned.
- Specified by:
getDefaultin interfacede.uplanet.lucy.server.profile.IUserProfile- Parameters:
p_strName- The name of the property to be retrieved.p_objDefault- The property to be returned in error conditions.- Returns:
- The property or
p_objDefaultif the property does not exist or if an error occurred.
-
put
Set a user profile property.- Specified by:
putin interfacede.uplanet.lucy.server.profile.IUserProfile- Parameters:
p_strName- The name of the property.p_objValue- The value of the property.
-
putDefault
Set a default profile property.- Specified by:
putDefaultin interfacede.uplanet.lucy.server.profile.IUserProfile- Parameters:
p_strName- The name of the property.p_objValue- The value of the property.
-
userOverridesProperty
Check if the current user overrides the given property.- Specified by:
userOverridesPropertyin interfacede.uplanet.lucy.server.profile.IUserProfile- Parameters:
p_strName- The name of the property.- Returns:
trueif the current user overrides the property, orfalseotherwise.
-
userOverridesProperty
Check if a given user overrides the given property.- Specified by:
userOverridesPropertyin interfacede.uplanet.lucy.server.profile.IUserProfile- Parameters:
p_strName- The name of the property.p_strUserId- The ID of a specific user.- Returns:
trueif the given user overrides the property, orfalseotherwise.
-
delete
Delete all profile properties whose names start with the specified prefix.- Parameters:
p_conn- The database connection to be used.p_strNamePrefix- The property name prefix.
-
delete
public static void delete(de.uplanet.jdbc.JdbcConnection p_conn, String p_strNamePrefix, String p_strUserGuid) Delete all profile properties whose names start with the specified prefix.- Parameters:
p_conn- The database connection to be used.p_strNamePrefix- The property name prefix.p_strUserGuid- The guid of the user
-
deleteExceptForDefaultUser
public static void deleteExceptForDefaultUser(de.uplanet.jdbc.JdbcConnection p_conn, String p_strNamePrefix) Delete all profile properties that do not belong to the default user and whose names start with the specified prefix.- Parameters:
p_conn- The database connection to be used.p_strNamePrefix- The property name prefix.
-
done
public void done()- Specified by:
donein interfacede.uplanet.lucy.server.profile.IUserProfile
-
close
public void close()This method does nothing.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfacede.uplanet.lucy.server.profile.IUserProfile
-