remove imports
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / MarkerServiceImpl.java
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 //TODO use AbstractPagerImpl.hasResultsInRange(numberOfResults, pageNumber, pageSize)
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 //TODO use AbstractPagerImpl.hasResultsInRange(numberOfResults, pageNumber, pageSize)
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