package br.com.dextra.dextranet.grupo;
import java.util.ArrayList;
import java.util.List;
import br.com.dextra.dextranet.persistencia.EntidadeOrdenacao;
import br.com.dextra.dextranet.persistencia.EntidadeRepository;
import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.EntityNotFoundException;
import com.google.appengine.api.datastore.Query.SortDirection;
public class ServicoGrupoRepository extends EntidadeRepository {
public ServicoGrupo persiste(ServicoGrupo servicoGrupo) {
return super.persiste(servicoGrupo);
}
public ServicoGrupo obtemPorId(String id) throws EntityNotFoundException {
Entity servicoGrupoEntity = this.obtemPorId(id, ServicoGrupo.class);
return new ServicoGrupo(servicoGrupoEntity);
}
public List<ServicoGrupo> obtemPorIdGrupo(String idGrupo) throws EntityNotFoundException {
List<String> campos = new ArrayList<String>();
campos.add(ServicoGrupoFields.idGrupo.name());
List<Object> valores = new ArrayList<Object>();
valores.add(idGrupo);
Iterable<Entity> entidades = super.obterPor(ServicoGrupo.class, campos, valores);
List<ServicoGrupo> servicoGrupos= new ArrayList<ServicoGrupo>();
ServicoGrupo servico = null;
for (Entity entity : entidades) {
servico = new ServicoGrupo(entity);
servicoGrupos.add(servico);
}
return servicoGrupos;
}
public ServicoGrupo obtemPor(String idServico, String idGrupo) throws EntityNotFoundException {
List<String> campos = new ArrayList<String>();
campos.add(ServicoGrupoFields.idGrupo.name());
campos.add(ServicoGrupoFields.idServico.name());
List<Object> valores = new ArrayList<Object>();
valores.add(idGrupo);
valores.add(idServico);
Iterable<Entity> entidades = super.obterPor(ServicoGrupo.class, campos, valores);
if (entidades != null && entidades.iterator().hasNext()) {
return new ServicoGrupo(entidades.iterator().next());
}
return null;
}
public List<ServicoGrupo> lista() {
EntidadeOrdenacao entidadeOrdenacao = new EntidadeOrdenacao(ServicoGrupoFields.id.name(), SortDirection.ASCENDING);
Iterable<Entity> entidades = super.lista(ServicoGrupo.class, entidadeOrdenacao);
ServicoGrupo servicoGrupo;
List<ServicoGrupo> servicos = new ArrayList<ServicoGrupo>();
for (Entity entity : entidades) {
servicoGrupo = new ServicoGrupo(entity);
servicos.add(servicoGrupo);
}
return servicos;
}
public void remove(String id) {
this.remove(id, ServicoGrupo.class);
}
}