Project

General

Profile

Download (2.15 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.cdm.api.service;
2

    
3
import java.util.ArrayList;
4
import java.util.List;
5

    
6
import org.springframework.beans.factory.annotation.Autowired;
7
import org.springframework.stereotype.Service;
8
import org.springframework.transaction.annotation.Propagation;
9
import org.springframework.transaction.annotation.Transactional;
10

    
11
import eu.etaxonomy.cdm.api.service.pager.Pager;
12
import eu.etaxonomy.cdm.api.service.pager.impl.DefaultPagerImpl;
13
import eu.etaxonomy.cdm.model.common.Annotation;
14
import eu.etaxonomy.cdm.model.common.Marker;
15
import eu.etaxonomy.cdm.model.common.MarkerType;
16
import eu.etaxonomy.cdm.model.common.User;
17
import eu.etaxonomy.cdm.persistence.dao.hibernate.common.MarkerDaoImpl;
18
import eu.etaxonomy.cdm.persistence.query.OrderHint;
19

    
20
@Service
21
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
22
public class MarkerServiceImpl extends	VersionableServiceBase<Marker, MarkerDaoImpl> implements IMarkerService {
23

    
24
	@Autowired
25
	protected void setDao(MarkerDaoImpl dao) {
26
		this.dao = dao;
27
	}
28

    
29
	public Pager<Marker> page(MarkerType markerType, Integer pageSize,	Integer pageNumber, List<OrderHint> orderHints,	List<String> propertyPaths) {
30
        Integer numberOfResults = dao.count(markerType);
31
		
32
		List<Marker> results = new ArrayList<Marker>();
33
		if(numberOfResults > 0) { // no point checking again
34
			results = dao.list(markerType, pageSize, pageNumber, orderHints, propertyPaths);
35
		}
36
		
37
		return new DefaultPagerImpl<Marker>(pageNumber, numberOfResults, pageSize, results);
38
	}
39

    
40
	public Pager<Marker> list(User creator, MarkerType markerType,Integer pageSize, Integer pageNumber, List<OrderHint> orderHints,	List<String> propertyPaths) {
41
        Integer numberOfResults = dao.count(creator,markerType);
42
		
43
		List<Marker> results = new ArrayList<Marker>();
44
		if(numberOfResults > 0) { // no point checking again
45
			results = dao.list(creator,markerType, pageSize, pageNumber, orderHints, propertyPaths);
46
		}
47
		
48
		return new DefaultPagerImpl<Marker>(pageNumber, numberOfResults, pageSize, results);
49
	}
50

    
51
	public int count(User creator, MarkerType markerType) {
52
        return dao.count(creator,markerType);
53
	}
54
}
55

    
(47-47/65)