Project

General

Profile

Download (2.44 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
 * @since 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
	@Override
36
	public <T extends TypeDesignationBase> List<T> getTypeDesignations(
37
			HomotypicalGroup homotypicalGroup, Class<T> type,
38
			TypeDesignationStatusBase status, Integer pageSize,
39
			Integer pageNumber, List<String> propertyPaths) {
40

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

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

    
52
		query = getSession().createQuery(queryString);
53

    
54
		if(status != null) {
55
			query.setParameter("status", status);
56
		}
57
		if(type != null){
58
			query.setParameter("type", type.getSimpleName());
59
		}
60

    
61
		query.setParameter("homotypicalGroup",homotypicalGroup);
62

    
63
		if(pageSize != null) {
64
			query.setMaxResults(pageSize);
65
			if(pageNumber != null) {
66
				query.setFirstResult(pageNumber * pageSize);
67
			} else {
68
				query.setFirstResult(0);
69
			}
70
		}
71
		@SuppressWarnings("unchecked")
72
        List<T> result = defaultBeanInitializer.initializeAll(query.list(), propertyPaths);
73
		return result;
74
	}
75

    
76

    
77

    
78
}
(1-1/5)