final PFUserDO user = PFUserContext.getUser();
if (user == null) {
// Should only occur, if user is not logged in.
return null;
}
final UserXmlPreferencesCache userXmlPreferencesCache = UserXmlPreferencesCache.getDefaultInstance();
final Integer userId = user.getId();
if (UserRights.getAccessChecker().isDemoUser(userId) == true) {
// Store user pref for demo user only in user's session.
Object value = MySession.get().getAttribute(key);
if (value != null) {
return value;
}
value = userXmlPreferencesCache.getEntry(userId, key);
if (value == null || value instanceof Serializable == false) {
return null;
}
value = CloneHelper.cloneBySerialization(value);
MySession.get().setAttribute(key, (Serializable) value);
return value;
}
return userXmlPreferencesCache.getEntry(userId, key);
}