/* * Copyright (C) 2003-2009 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.etk.core.membership.cache; import org.etk.core.membership.Membership; import java.io.Serializable; /** * Created by The eXo Platform SAS. * * <br/>Date: 2009 * * @author <a href="mailto:anatoliy.bazko@exoplatform.com.ua">Anatoliy Bazko</a> * @version $Id: MembershipCacheKey.java 287 2009-10-16 08:08:49Z tolusha $ */ /** * Will be used as key for cacheMembership. */ public class MembershipCacheKey implements Serializable { /** * serialVersionUID. */ private static final long serialVersionUID = -188435911917156440L; private final String userName; private final String groupId; private final String type; private final int hashcode; public MembershipCacheKey(String userName, String groupId, String type) { this.userName = userName; this.groupId = groupId; this.type = type; final int prime = 31; int result = 1; result = prime * result + ((groupId == null) ? 0 : groupId.hashCode()); result = prime * result + ((type == null) ? 0 : type.hashCode()); hashcode = prime * result + ((userName == null) ? 0 : userName.hashCode()); } public MembershipCacheKey(Membership m) { this.userName = m.getUserName(); this.groupId = m.getGroupId(); this.type = m.getMembershipType(); final int prime = 31; int result = 1; result = prime * result + ((groupId == null) ? 0 : groupId.hashCode()); result = prime * result + ((type == null) ? 0 : type.hashCode()); hashcode = prime * result + ((userName == null) ? 0 : userName.hashCode()); } @Override public int hashCode() { return hashcode; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; MembershipCacheKey other = (MembershipCacheKey)obj; if (groupId == null) { if (other.groupId != null) return false; } else if (!groupId.equals(other.groupId)) return false; if (type == null) { if (other.type != null) return false; } else if (!type.equals(other.type)) return false; if (userName == null) { if (other.userName != null) return false; } else if (!userName.equals(other.userName)) return false; return true; } }