package com.opentravelsoft.providers.hibernate; import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.TreeSet; import com.opentravelsoft.util.LabelValueBean; import org.hibernate.criterion.CriteriaSpecification; import org.hibernate.criterion.DetachedCriteria; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Repository; import com.opentravelsoft.entity.Lists; import com.opentravelsoft.providers.ListDao; import com.opentravelsoft.util.RowDataUtil; import com.opentravelsoft.util.StringUtil; @Repository("ListDao") public class ListDaoHibernate extends GenericDaoHibernate<Lists, Integer> implements ListDao { public ListDaoHibernate() { super(Lists.class); } /* * (non-Javadoc) * * @see com.opentravelsoft.providers.ListDao#getList(java.lang.String) */ public List<LabelValueBean> getList(String listName) { List<Lists> list = getListByType(listName); List<LabelValueBean> bs = new ArrayList<LabelValueBean>(); for (Lists obj : list) { LabelValueBean business = new LabelValueBean(); business.setValue(RowDataUtil.getString(obj.getValue())); business.setLabel(RowDataUtil.getString(obj.getText())); bs.add(business); } return bs; } /* * (non-Javadoc) * * @see com.opentravelsoft.providers.ListDao#getListByType(java.lang.String) */ @SuppressWarnings("unchecked") public List<Lists> getListByType(String listName) { DetachedCriteria criteria = DetachedCriteria.forClass(Lists.class); if (StringUtil.hasLength(listName)) criteria.add(Restrictions.eq("listName", listName)); criteria.addOrder(Order.asc("listName")); criteria.addOrder(Order.asc("sortOrder")); criteria.setResultTransformer(CriteriaSpecification.ROOT_ENTITY); List<Lists> list = getHibernateTemplate().findByCriteria(criteria); return list; } /* * (non-Javadoc) * * @see com.opentravelsoft.providers.ListDao#updateList(com.opentravelsoft * .ebiz.entity.Lists) */ public int updateList(Lists config) { Lists list = null; if (config.getEntryId() > 0) { list = (Lists) getHibernateTemplate().get(Lists.class, config.getEntryId()); if (null == list) return -1; } else list = new Lists(); list.setValue(config.getValue()); list.setText(config.getText()); list.setListName(config.getListName()); list.setSortOrder(config.getSortOrder()); getHibernateTemplate().saveOrUpdate(list); return 0; } /* * (non-Javadoc) * * @see com.opentravelsoft.providers.ListDao#getListType() */ @SuppressWarnings("unchecked") public Set<String> getListType() { StringBuilder sb = new StringBuilder(); sb.append("select distinct listName "); sb.append("from com.opentravelsoft.entity.Lists "); sb.append("order by listName "); List<String> list = getHibernateTemplate().find(sb.toString()); Set<String> set = new TreeSet<String>(); for (String str : list) { set.add(str); } return set; } }