package br.gov.mj.sislegis.app.model; import java.io.Serializable; /** * Estipula um contrato base para as entidades persistentes da aplicacao. * * @author raphael.santos * */ public abstract class AbstractEntity implements Serializable { /** * */ private static final long serialVersionUID = 8805686324493542628L; /** * @return A referencia para a chave primaria (Primary Key) de cada objeto * persistido. Caso o objeto ainda não tenha sido persistido, deve * retornar <code>null</code>. */ public abstract Number getId(); @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (this == obj) { return true; } if (!(obj.getClass().equals(this.getClass())) || !(obj instanceof AbstractEntity)) { return false; } AbstractEntity other = (AbstractEntity) obj; if (getId() == null) { return false; } else { return getId().equals(other.getId()); } } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((getId() == null) ? super.hashCode() : getId().hashCode()); return result; } }