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
.Propagation
;
9 import org
.springframework
.transaction
.annotation
.Transactional
;
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
;
21 @Transactional(propagation
= Propagation
.SUPPORTS
, readOnly
= true)
22 public class MarkerServiceImpl
extends VersionableServiceBase
<Marker
, MarkerDaoImpl
> implements IMarkerService
{
25 protected void setDao(MarkerDaoImpl dao
) {
29 public Pager
<Marker
> page(MarkerType markerType
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
30 Integer numberOfResults
= dao
.count(markerType
);
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
);
37 return new DefaultPagerImpl
<Marker
>(pageNumber
, numberOfResults
, pageSize
, results
);
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
);
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
);
48 return new DefaultPagerImpl
<Marker
>(pageNumber
, numberOfResults
, pageSize
, results
);
51 public int count(User creator
, MarkerType markerType
) {
52 return dao
.count(creator
,markerType
);