1 package eu
.etaxonomy
.cdm
.api
.service
;
3 import java
.util
.ArrayList
;
6 import org
.springframework
.beans
.factory
.annotation
.Autowired
;
7 import org
.springframework
.stereotype
.Service
;
8 import org
.springframework
.transaction
.annotation
.Transactional
;
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
.permission
.User
;
15 import eu
.etaxonomy
.cdm
.persistence
.dao
.hibernate
.common
.MarkerDaoImpl
;
16 import eu
.etaxonomy
.cdm
.persistence
.query
.OrderHint
;
19 @Transactional(readOnly
= true)
20 public class MarkerServiceImpl
extends VersionableServiceBase
<Marker
, MarkerDaoImpl
> implements IMarkerService
{
24 protected void setDao(MarkerDaoImpl dao
) {
29 public Pager
<Marker
> page(MarkerType markerType
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
30 long numberOfResults
= dao
.count(markerType
);
32 List
<Marker
> results
= new ArrayList
<>();
33 if(numberOfResults
> 0) { // no point checking again //TODO use AbstractPagerImpl.hasResultsInRange(numberOfResults, pageNumber, pageSize)
34 results
= dao
.list(markerType
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
37 return new DefaultPagerImpl
<>(pageNumber
, numberOfResults
, pageSize
, results
);
41 public Pager
<Marker
> list(User creator
, MarkerType markerType
,Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
42 long numberOfResults
= dao
.count(creator
,markerType
);
44 List
<Marker
> results
= new ArrayList
<>();
45 if(numberOfResults
> 0) { // no point checking again //TODO use AbstractPagerImpl.hasResultsInRange(numberOfResults, pageNumber, pageSize)
46 results
= dao
.list(creator
,markerType
, pageSize
, pageNumber
, orderHints
, propertyPaths
);
49 return new DefaultPagerImpl
<Marker
>(pageNumber
, numberOfResults
, pageSize
, results
);
53 public long count(User creator
, MarkerType markerType
) {
54 return dao
.count(creator
,markerType
);