package com.axiastudio.suite.anagrafiche;
import com.axiastudio.pypapi.Register;
import com.axiastudio.pypapi.db.Database;
import com.axiastudio.pypapi.db.IDatabase;
import com.axiastudio.suite.anagrafiche.entities.Riferimento;
import com.axiastudio.suite.anagrafiche.entities.Soggetto;
import com.axiastudio.suite.anagrafiche.entities.TipoRiferimento;
import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import java.util.ArrayList;
import java.util.List;
/**
* User: tiziano
* Date: 11/02/14
* Time: 09:43
*/
public class AnagraficheUtil {
public static List<Soggetto> trovaSoggettoDaPec(String email){
return trovaSoggettoDaEmail(email, TipoRiferimento.PEC);
}
public static List<Soggetto> trovaSoggettoDaEmail(String email, TipoRiferimento tipo){
List<Soggetto> soggetti = new ArrayList<Soggetto>();
Database db = (Database) Register.queryUtility(IDatabase.class);
EntityManager em = db.getEntityManagerFactory().createEntityManager();
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Riferimento> cq = cb.createQuery(Riferimento.class);
Root from = cq.from(Riferimento.class);
Predicate predicate = cb.equal(from.get("riferimento"), email);
cq.select(from);
cq.where(predicate);
TypedQuery<Riferimento> tq = em.createQuery(cq);
List<Riferimento> riferimenti = tq.getResultList();
for( Riferimento riferimento: riferimenti){
soggetti.add(riferimento.getSoggetto());
}
return soggetti;
}
}