/** * */ package net.conselldemallorca.helium.core.model.dao; import java.util.ArrayList; import java.util.List; import net.conselldemallorca.helium.core.extern.domini.ParellaCodiValor; import net.conselldemallorca.helium.core.model.hibernate.EnumeracioValors; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Component; /** * Dao pels objectes de tipus Enumeracio * * @author Limit Tecnologies <limit@limit.es> */ @Component public class EnumeracioValorsDao extends HibernateGenericDao<EnumeracioValors, Long> { public EnumeracioValorsDao() { super(EnumeracioValors.class); } public int getNextOrder(Long enumeracioId) { Object result = getSession().createQuery( "select " + " max(ev.ordre) " + "from " + " EnumeracioValors ev " + "where " + " ev.enumeracio.id=?"). setLong(0, enumeracioId).uniqueResult(); if (result == null) return 0; return ((Integer)result).intValue() + 1; } public EnumeracioValors getAmbOrdre(Long enumeracioId, int ordre) { return (EnumeracioValors)getSession().createQuery( "from " + " EnumeracioValors ev " + "where " + " ev.enumeracio.id=? " + "and ev.ordre=?"). setLong(0, enumeracioId). setInteger(1, ordre). uniqueResult(); } public List<EnumeracioValors> findAmbEnumeracioOrdenat(Long enumeracioId) { return findOrderedByCriteria( new String[] {"ordre", "id"}, true, Restrictions.eq("enumeracio.id", enumeracioId)); } public EnumeracioValors findAmbCodi(String codi) { List<EnumeracioValors> list = findByCriteria(Restrictions.eq("codi", codi)); if (list.size() > 0) return list.get(0); return null; } public EnumeracioValors findAmbEnumeracioICodi(Long enumeracioId, String codi) { List<EnumeracioValors> list = findByCriteria( Restrictions.eq("enumeracio.id", enumeracioId), Restrictions.eq("codi", codi)); if (list.size() > 0) return list.get(0); return null; } public List<ParellaCodiValor> getLlistaValors(Long enumeracioId) { List<ParellaCodiValor> resposta = new ArrayList<ParellaCodiValor>(); List<EnumeracioValors> valors = findAmbEnumeracioOrdenat(enumeracioId); if (valors != null) { for (int i = 0; i < valors.size(); i++) { EnumeracioValors enumValors = valors.get(i); if (enumValors != null) resposta.add(new ParellaCodiValor(enumValors.getCodi(), enumValors.getNom())); } } return resposta; } public EnumeracioValors findAmbEnumeracioIId(Long enumeracioId, Long id) { List <EnumeracioValors> list = findByCriteria( Restrictions.eq("enumeracio.id", enumeracioId), Restrictions.eq("id", id)); if (list.size() > 0) return list.get(0); return null; } }