/* * 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.identity.model; /** * Represents persons or objects relevant to the social system. */ public class Identity { /** The id. */ String id; /** The remote id. */ String remoteId; /** The provider id. */ String providerId; /** Denotes whether this corresponding identity exists or not by the remote identity provider. * * @since 1.2.0-GA */ boolean isDeleted; /** The profile. */ Profile profile; /** The global id. */ GlobalId globalId; /** * Instantiates a new identity. * * @param id the id */ public Identity(String id) { this.id = id; } /** * Instantiates a new identity * * @param providerId the provider id of identity * @param remoteId the remote id of identity */ public Identity(String providerId, String remoteId) { this.remoteId = remoteId; this.providerId = providerId; } /** * Gets the id. * * @return the id */ public String getId() { return id; } /** * Sets the id. * * @param id the new id */ public void setId(String id) { this.id = id; } /** * Checks whether this corresponding identity exists or not by the remote identity provider. * * @return true if this corresponding identity is indicated as deleted by the remote identity provider. * @since 1.2.0-GA */ public boolean isDeleted() { return isDeleted; } /** * Sets the isDeleted property to indicate if this identity is deleted or not by the remote identity provider. * * @param isDeleted new value to set this identity is deleted or not. * @since 1.2.0-GA */ public void setDeleted(boolean isDeleted) { this.isDeleted = isDeleted; } /** * Gets the profile. * * @return the profile */ public Profile getProfile() { if (profile == null) { profile = new Profile(this); } return profile; } /** * Sets the profile. * * @param profile the new profile */ public void setProfile(Profile profile) { this.profile = profile; } /** * Gets the remote id. * * @return the remote id */ public String getRemoteId() { return remoteId; } /** * Sets the remote id. * * @param remoteId the new remote id */ public void setRemoteId(String remoteId) { this.remoteId = remoteId; } /** * Gets the provider id. * * @return the provider id */ public String getProviderId() { return providerId; } /** * Sets the provider id. * * @param providerId the new provider id */ public void setProviderId(String providerId) { this.providerId = providerId; } /** * @return the global id string of identity */ @Override public String toString() { return getGlobalId().toString(); } /** * @return global id of identity */ public GlobalId getGlobalId() { if(globalId == null) globalId = GlobalId.create(providerId, remoteId); return globalId; } @Override public boolean equals(Object obj) { if (obj instanceof Identity) { return getId().equals(((Identity)obj).getId()); } return super.equals(obj); } }