package br.com.dextra.dextranet.persistencia; import java.util.UUID; import com.google.appengine.api.datastore.Entity; import com.google.appengine.api.datastore.Key; import com.google.appengine.api.datastore.KeyFactory; public abstract class Entidade { protected String id; public Entidade() { this.id = UUID.randomUUID().toString(); } public Entidade(String id) { this.id = id; } public String getId() { return this.id; } public void setId(String id) { this.id = id; } public <T extends Entidade> Key getKey(Class<T> clazz) { return KeyFactory.createKey(clazz.getName(), this.getId()); } public abstract Entity toEntity(); @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((id == null) ? 0 : id.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Entidade other = (Entidade) obj; if (id == null) { if (other.id != null) return false; } else if (!id.equals(other.id)) return false; return true; } }