package org.jboss.seam.security.management; import java.io.Serializable; import org.picketlink.idm.spi.model.IdentityObject; import org.picketlink.idm.spi.model.IdentityObjectRelationship; import org.picketlink.idm.spi.model.IdentityObjectRelationshipType; /** * @author Shane Bryzak */ public class IdentityObjectRelationshipImpl implements IdentityObjectRelationship, Serializable { private static final long serialVersionUID = 487517126125658201L; private IdentityObject fromIdentityObject; private IdentityObject toIdentityObject; private String name; private IdentityObjectRelationshipType type; public IdentityObjectRelationshipImpl(IdentityObject fromIdentityObject, IdentityObject toIdentityObject, String name, IdentityObjectRelationshipType type) { if (fromIdentityObject == null) throw new IllegalArgumentException("IdentityObjectRelationship.fromIdentityObject cannot be null."); if (toIdentityObject == null) throw new IllegalArgumentException("IdentityObjectRelationship.toIdentityObject cannot be null."); if (type == null) throw new IllegalArgumentException("IdentityObjectRelationship.type cannot be null."); this.fromIdentityObject = fromIdentityObject; this.toIdentityObject = toIdentityObject; this.name = name; this.type = type; } public IdentityObject getFromIdentityObject() { return fromIdentityObject; } public IdentityObject getToIdentityObject() { return toIdentityObject; } public String getName() { return name; } public IdentityObjectRelationshipType getType() { return type; } @Override public boolean equals(Object value) { if (!(value instanceof IdentityObjectRelationship)) return false; IdentityObjectRelationship other = (IdentityObjectRelationship) value; if (!fromIdentityObject.equals(other.getFromIdentityObject())) return false; if (!toIdentityObject.equals(other.getToIdentityObject())) return false; if (!type.equals(other.getType())) return false; if (name == null) { if (other.getName() != null) return false; } else { if (!name.equals(other.getName())) return false; } return true; } @Override public int hashCode() { int hash = (fromIdentityObject.hashCode() * 11) ^ (toIdentityObject.hashCode() * 17) ^ (type.hashCode() * 23); if (name != null) hash ^= (name.hashCode() * 29); return hash; } }