Project

General

Profile

Download (1.75 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.term;
8

    
9
import java.util.List;
10
import java.util.Set;
11

    
12
import org.hibernate.Criteria;
13
import org.hibernate.criterion.Restrictions;
14
import org.springframework.stereotype.Repository;
15

    
16
import eu.etaxonomy.cdm.model.term.TermNode;
17
import eu.etaxonomy.cdm.model.term.TermType;
18
import eu.etaxonomy.cdm.persistence.dao.hibernate.common.VersionableDaoBase;
19
import eu.etaxonomy.cdm.persistence.dao.term.ITermNodeDao;
20
import eu.etaxonomy.cdm.persistence.query.OrderHint;
21

    
22
/**
23
 * @author a.babadshanjan
24
 * @since 09.09.2008
25
 */
26
@Repository
27
public class TermNodeDaoImpl
28
        extends VersionableDaoBase<TermNode>
29
        implements ITermNodeDao {
30

    
31
	public TermNodeDaoImpl() {
32
		super(TermNode.class);
33
	}
34

    
35
	@Override
36
    public List<TermNode> list() {
37
		Criteria crit = getSession().createCriteria(type);
38
		@SuppressWarnings("unchecked")
39
        List<TermNode> result = crit.list();
40
		return result;
41
	}
42

    
43
	//TODO still needs to be tested
44
	@Override
45
    public List<TermNode> list(TermType termType, Integer limit, Integer start, List<OrderHint> orderHints,
46
            List<String> propertyPaths){
47

    
48
	    Criteria criteria = getSession().createCriteria(type);
49
        if (termType != null){
50
            Set<TermType> types = termType.getGeneralizationOf(true);
51
            types.add(termType);
52
            criteria.add(Restrictions.in("termType", types));
53
        }
54

    
55
        addLimitAndStart(criteria, limit, start);
56

    
57
        addOrder(criteria, orderHints);
58

    
59
        @SuppressWarnings("unchecked")
60
        List<TermNode> results = criteria.list();
61

    
62
        defaultBeanInitializer.initializeAll(results, propertyPaths);
63
        return results;
64
	}
65

    
66

    
67

    
68
}
(4-4/6)