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;
}
}