/* * Copyright (C) 2003-2013 eXo Platform SAS. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License * as published by the Free Software Foundation; either version 3 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.exoplatform.forum.service.cache.model.data; import java.util.HashMap; import java.util.Map; import org.exoplatform.forum.common.cache.model.CachedData; import org.exoplatform.forum.service.UserProfile; public class LoginUserProfileData implements CachedData<UserProfile> { private static final long serialVersionUID = 1L; private String userId; private String screenName; private long userRole; // UserBan private boolean isBanned = false; private long banUntil = 0; private String email = ""; // UserOption private String timeFormat; private Double timeZone; private String shortDateformat; private String longDateformat; private long maxTopic = 10; private long maxPost = 10; private boolean isAutoWatchMyTopics = false; private boolean isAutoWatchTopicIPost = false; private String[] lastReadPostOfTopic; private String[] lastReadPostOfForum; private String[] collapCategories; private String[] moderateForums; private String[] moderateCategory; private long newMessage = 0; private Map<String, Long> lastAccessTopics = new HashMap<String, Long>(); private Map<String, Long> lastAccessForums = new HashMap<String, Long>(); public LoginUserProfileData(UserProfile profile) { this.userId = profile.getUserId(); this.screenName = profile.getScreenName(); this.userRole = profile.getUserRole(); this.isBanned = profile.getIsBanned(); this.banUntil = profile.getBanUntil(); this.timeFormat = profile.getTimeFormat(); this.timeZone = profile.getTimeZone(); this.shortDateformat = profile.getShortDateFormat(); this.longDateformat = profile.getLongDateFormat(); this.moderateForums = profile.getModerateForums(); this.moderateCategory = profile.getModerateCategory(); this.maxTopic = profile.getMaxTopicInPage(); this.maxPost = profile.getMaxPostInPage(); this.newMessage = profile.getNewMessage(); this.isAutoWatchMyTopics = profile.getIsAutoWatchMyTopics(); this.isAutoWatchTopicIPost = profile.getIsAutoWatchTopicIPost(); this.lastReadPostOfForum = profile.getLastReadPostOfForum(); this.lastReadPostOfTopic = profile.getLastReadPostOfTopic(); this.collapCategories = profile.getCollapCategories(); this.email = profile.getEmail(); this.lastAccessTopics = profile.getLastAccessTopics(); this.lastAccessForums = profile.getLastAccessForums(); } @Override public UserProfile build() { UserProfile userProfile = new UserProfile(); userProfile.setUserId(this.userId); userProfile.setScreenName(this.screenName); userProfile.setUserRole(this.userRole); userProfile.setIsBanned(this.isBanned); userProfile.setBanUntil(this.banUntil); userProfile.setTimeFormat(this.timeFormat); userProfile.setTimeZone(this.timeZone); userProfile.setShortDateFormat(this.shortDateformat); userProfile.setLongDateFormat(this.longDateformat); userProfile.setModerateForums(this.moderateForums); userProfile.setModerateCategory(this.moderateCategory); userProfile.setMaxPostInPage(this.maxPost); userProfile.setMaxTopicInPage(this.maxTopic); userProfile.setNewMessage(this.newMessage); userProfile.setIsAutoWatchMyTopics(this.isAutoWatchMyTopics); userProfile.setIsAutoWatchTopicIPost(this.isAutoWatchTopicIPost); userProfile.setLastReadPostOfForum(this.lastReadPostOfForum); userProfile.setLastReadPostOfTopic(this.lastReadPostOfTopic); userProfile.setCollapCategories(this.collapCategories); userProfile.setEmail(this.email); userProfile.setLastAccessTopics(this.lastAccessTopics); userProfile.setLastAccessForums(this.lastAccessForums); return userProfile; } }