package org.jboss.seam.framework; import java.io.Serializable; /** * Wrapper class that identifies an entity * * @author Pete Muir * */ public abstract class Identifier<T> implements Serializable { public Identifier(Class clazz, Object id) { if (clazz == null || id == null) { throw new IllegalArgumentException("Id and clazz must not be null"); } this.clazz = clazz; this.id = id; } private Class clazz; private Object id; public Class getClazz() { return clazz; } public Object getId() { return id; } @Override public boolean equals(Object other) { if (other instanceof Identifier) { Identifier that = (Identifier) other; if (id == null || clazz == null) { throw new IllegalArgumentException("Class and Id must not be null"); } else { return this.getId().equals(that.getId()) && this.getClazz().equals(that.getClazz()); } } return false; } public abstract Object find(T persistenceContext); }