Project

General

Profile

Download (2.66 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2008 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*/
6

    
7
package eu.etaxonomy.cdm.persistence.dao.hibernate.name;
8

    
9
import java.util.List;
10

    
11
import org.apache.log4j.Logger;
12
import org.hibernate.Query;
13
import org.springframework.stereotype.Repository;
14

    
15
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
16
import eu.etaxonomy.cdm.model.name.TypeDesignationBase;
17
import eu.etaxonomy.cdm.model.name.TypeDesignationStatusBase;
18
import eu.etaxonomy.cdm.persistence.dao.hibernate.common.CdmEntityDaoBase;
19
import eu.etaxonomy.cdm.persistence.dao.name.IHomotypicalGroupDao;
20

    
21
/**
22
 * @author a.babadshanjan
23
 * @created 24.09.2008
24
 */
25
@Repository
26
public class HomotypicalGroupDaoHibernateImpl extends CdmEntityDaoBase<HomotypicalGroup> implements IHomotypicalGroupDao {
27

    
28
	@SuppressWarnings("unused")
29
	private static final Logger logger = Logger.getLogger(HomotypicalGroupDaoHibernateImpl.class);
30

    
31
	public HomotypicalGroupDaoHibernateImpl() {
32
		super(HomotypicalGroup.class);
33
	}
34

    
35
	/* (non-Javadoc)
36
	 * @see eu.etaxonomy.cdm.persistence.dao.name.IHomotypicalGroupDao#getTypeDesignations(eu.etaxonomy.cdm.model.name.HomotypicalGroup, java.lang.Class, eu.etaxonomy.cdm.model.name.TypeDesignationStatusBase, java.lang.Integer, java.lang.Integer, java.util.List)
37
	 */
38
	@Override
39
	public <T extends TypeDesignationBase> List<T> getTypeDesignations(
40
			HomotypicalGroup homotypicalGroup, Class<T> type,
41
			TypeDesignationStatusBase status, Integer pageSize,
42
			Integer pageNumber, List<String> propertyPaths) {
43

    
44
		// checkNotInPriorView("getTypeDesignations(HomotypicalGroup homotypicalGroup,TypeDesignationStatusBase status, Integer pageSize, Integer pageNumber,	List<String> propertyPaths)");
45
		Query query = null;
46
		String queryString = "select designation from TypeDesignationBase designation join designation.typifiedNames name join name.homotypicalGroup homotypicalGroup where homotypicalGroup = :homotypicalGroup";
47

    
48
		if(status != null) {
49
			queryString +=  " and designation.typeStatus = :status";
50
		}
51
		if(type != null){
52
			queryString +=  " and designation.class = :type";
53
		}
54

    
55
		query = getSession().createQuery(queryString);
56

    
57
		if(status != null) {
58
			query.setParameter("status", status);
59
		}
60
		if(type != null){
61
			query.setParameter("type", type.getSimpleName());
62
		}
63

    
64
		query.setParameter("homotypicalGroup",homotypicalGroup);
65

    
66
		if(pageSize != null) {
67
			query.setMaxResults(pageSize);
68
			if(pageNumber != null) {
69
				query.setFirstResult(pageNumber * pageSize);
70
			} else {
71
				query.setFirstResult(0);
72
			}
73
		}
74
		return defaultBeanInitializer.initializeAll(query.list(), propertyPaths);
75
	}
76

    
77

    
78

    
79
}
(1-1/4)