Project

General

Profile

Download (2.17 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.Transactional;
9

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

    
18
@Service
19
@Transactional(readOnly = true)
20
public class MarkerServiceImpl extends	VersionableServiceBase<Marker, MarkerDaoImpl> implements IMarkerService {
21

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

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

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

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

    
(70-70/97)