/* * Copyright (C) 2003-2007 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.social.core.space.model; import org.exoplatform.social.core.model.AvatarAttachment; import org.exoplatform.social.core.space.SpaceUtils; /** * Space Model * * @author <a href="mailto:tungcnw@gmail.com">dang.tung</a> * @since Aug 29, 2008 */ public class Space { /** The id. */ private String id; /** The display name. */ private String displayName; /** The group id. */ private String groupId; /** The app. */ private String app; /** The parent. */ private String parent; /** The description. */ private String description; /** The tag. */ private String tag; /** The pending users. */ private String[] pendingUsers; /** The invited users. */ private String[] invitedUsers; /** The type. */ private String type; /** The url. */ private String url; /** The visibility. */ private String visibility; /** The registration. */ private String registration; /** The priority. */ private String priority; /** The space attachment. */ private AvatarAttachment avatarAttachment; /** * The pretty name of space. * * @since 1.2.0-GA */ private String prettyName; /** * The url of avatar. * * @since 1.2.0-GA */ private String avatarUrl; /** * The creator of space. * * @since 1.2.0-GA */ private String creator; /** * The managers of a space. * * @since 1.2.0-GA */ private String[] managers; /** * The last updated time of avatar ( in millisecond) * * @since 1.2.1 */ private Long avatarLastUpdated; /** * The members of a space. * * @since 1.2.0-GA */ private String[] members; /** The Constant ACTIVE_STATUS. */ public final static String ACTIVE_STATUS = "active"; /** The Constant DEACTIVE_STATUS. */ public final static String DEACTIVE_STATUS = "deactive"; /** The Constant INSTALL_STATUS. */ public final static String INSTALL_STATUS = "installed"; /** The Constant PUBLIC. */ public final static String PUBLIC = "public"; /** The Constant PRIVATE. */ public final static String PRIVATE = "private"; /** The Constant HIDDEN. */ public final static String HIDDEN = "hidden"; /** The Constant OPEN. */ public final static String OPEN = "open"; /** The Constant VALIDATION. */ public final static String VALIDATION = "validation"; /** The Constant CLOSE. */ public final static String CLOSE = "close"; /** The Constant HIGH_PRIORITY. */ public final static String HIGH_PRIORITY = "1"; /** The Constant INTERMEDIATE_PRIORITY. */ public final static String INTERMEDIATE_PRIORITY = "2"; /** The Constant LOW_PRIORITY. */ public final static String LOW_PRIORITY = "3"; /** * Instantiates a new space. */ public Space() {} /** * Sets the id. * * @param id the new id */ public void setId(String id) { this.id = id; } /** * Gets the id. * * @return the id */ public String getId() { return id; } /** * Sets the space display name. The space pretty name also set. * * @param spaceDisplayName the space Display Name */ public void setDisplayName(String spaceDisplayName) { displayName = spaceDisplayName; setPrettyName(SpaceUtils.cleanString(spaceDisplayName)); } /** * Gets the name. * * @return the name */ public String getDisplayName() { return displayName; } /** * Gets space name id for used as space url, space identity remote id. * * @return * @deprecated use #getPrettyName() instead. To be removed at 1.3.x */ public String getName() { return getPrettyName(); } /** * Sets the group id. * * @param groupId the new group id */ public void setGroupId(String groupId) { this.groupId = groupId; } /** * Gets the group id. * * @return the group id */ public String getGroupId() { return groupId; } /** * Sets the app. * * @param app the new app */ public void setApp(String app) { this.app = app; } /** * Gets the app. * * @return the app */ public String getApp() { return app; } /** * Sets the parent. * * @param parent the new parent */ public void setParent(String parent) { this.parent = parent; } /** * Gets the parent. * * @return the parent */ public String getParent() { return parent; } /** * Sets the description. * * @param description the new description */ public void setDescription(String description) { this.description = description; } /** * Gets the description. * * @return the description */ public String getDescription() { return description; } /** * Sets the tag. * * @param tag the new tag */ public void setTag(String tag) { this.tag = tag; } /** * Gets the tag. * * @return the tag */ public String getTag() { return tag; } /** * Sets the pending users. * * @param pendingUsers the new pending users */ public void setPendingUsers(String[] pendingUsers) { this.pendingUsers = pendingUsers; } /** * Gets the pending users. * * @return the pending users */ public String[] getPendingUsers() { return pendingUsers; } /** * Sets the invited users. * * @param invitedUsers the new invited users */ public void setInvitedUsers(String[] invitedUsers) { this.invitedUsers = invitedUsers; } /** * Gets the invited users. * * @return the invited users */ public String[] getInvitedUsers() { return invitedUsers; } /** * Sets the type. * * @param type the new type */ public void setType(String type) { this.type = type; } /** * Gets the type. * * @return the type */ public String getType() { return type; } /** * Gets the short name. * * @return the short name */ public String getShortName() { return groupId.substring(groupId.lastIndexOf("/")+1); } /** * Gets the url. * * @return the url */ public String getUrl() { return url; } /** * Sets the url. * * @param url the new url */ public void setUrl(String url) { this.url = url; } /** * Gets the visibility. * * @return the visibility */ public String getVisibility() { return visibility; } /** * Sets the visibility. * * @param visibility the new visibility */ public void setVisibility(String visibility) { this.visibility = visibility; } public String toString() { return displayName + " (" + groupId + ")"; } /** * Gets the registration. * * @return the registration */ public String getRegistration() { return registration; } /** * Sets the registration. * * @param registration the new registration */ public void setRegistration(String registration) { this.registration = registration; } /** * Gets the priority. * * @return the priority */ public String getPriority() { return priority; } /** * Sets the priority. * * @param priority the new priority */ public void setPriority(String priority) { this.priority = priority; } /** * Sets the space attachment. * * @param avatarAttachment the new space attachment */ public void setAvatarAttachment(AvatarAttachment avatarAttachment) { this.avatarAttachment = avatarAttachment; this.setAvatarLastUpdated(avatarAttachment.getLastModified()); } /** * Gets the space attachment. * * @return the space attachment */ public AvatarAttachment getAvatarAttachment() { return avatarAttachment; } /** * Gets the pretty name of space. * * @return the name pretty of space * @since 1.2.0-GA */ public String getPrettyName() { return prettyName; } /** * Sets the pretty name of space. * * @param prettyName * @since 1.2.0-GA */ public void setPrettyName(String prettyName) { this.prettyName = prettyName; } /** * Gets the url of avatar. * * @since 1.2.0-GA */ public String getAvatarUrl() { return this.avatarUrl; } /** Sets the url of avatar. * * @param avatarUrl * @since 1.2.0-GA */ public void setAvatarUrl(String avatarUrl) { this.avatarUrl = avatarUrl; } /** * Gets the creator of a space. * * @return * @since 1.2.0-GA */ public String getCreator() { return creator; } /** * Sets the creator of a space. * * @return * @since 1.2.0-GA */ public void setCreator(String creator) { this.creator = creator; } /** * Gets the managers of a space. * * @return * @since 1.2.0-GA */ public String[] getManagers() { return managers; } /** * Sets the managers of a space. * * @return * @since 1.2.0-GA */ public void setManagers(String[] managers) { this.managers = managers; } /** * Gets the members of a space. * * @return * @since 1.2.0-GA */ public String[] getMembers() { return members; } /** * Sets the members of a space. * * @return * @since 1.2.0-GA */ public void setMembers(String[] members) { this.members = members; } /** * Gets the last updated time in milliseconds of avatar in a space * @return {@link Void} * @since 1.2.1 */ public Long getAvatarLastUpdated() { return avatarLastUpdated; } /** * Sets the last updated time in milliseconds of avatar in a space * @param avatarLastUpdatedTime * @since 1.2.1 */ public void setAvatarLastUpdated(Long avatarLastUpdatedTime) { this.avatarLastUpdated = avatarLastUpdatedTime; } }