2 * Copyright (C) 2009 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.cdm
.persistence
.dao
.hibernate
.common
;
12 import java
.util
.List
;
13 import java
.util
.UUID
;
15 import org
.hibernate
.Criteria
;
16 import org
.hibernate
.criterion
.Projections
;
17 import org
.hibernate
.criterion
.Restrictions
;
18 import org
.springframework
.stereotype
.Repository
;
20 import eu
.etaxonomy
.cdm
.model
.common
.Marker
;
21 import eu
.etaxonomy
.cdm
.model
.common
.MarkerType
;
22 import eu
.etaxonomy
.cdm
.model
.common
.User
;
23 import eu
.etaxonomy
.cdm
.persistence
.dao
.common
.IMarkerDao
;
24 import eu
.etaxonomy
.cdm
.persistence
.query
.OrderHint
;
27 public class MarkerDaoImpl
extends VersionableDaoBase
<Marker
> implements IMarkerDao
{
29 public MarkerDaoImpl() {
34 public int count(MarkerType markerType
) {
35 Criteria criteria
= getSession().createCriteria(Marker
.class);
36 criteria
.add(Restrictions
.eq("markerType", markerType
));
37 criteria
.setProjection(Projections
.rowCount());
38 return ((Number
)criteria
.uniqueResult()).intValue();
42 public List
<Marker
> list(MarkerType markerType
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
43 Criteria criteria
= getSession().createCriteria(Marker
.class);
44 criteria
.add(Restrictions
.eq("markerType", markerType
));
46 if(pageSize
!= null) {
47 criteria
.setMaxResults(pageSize
);
48 if(pageNumber
!= null) {
49 criteria
.setFirstResult(pageNumber
* pageSize
);
53 addOrder(criteria
, orderHints
);
54 @SuppressWarnings("unchecked")
55 List
<Marker
> results
= criteria
.list();
56 defaultBeanInitializer
.initializeAll(results
, propertyPaths
);
61 public UUID
delete(Marker marker
) {
62 throw new RuntimeException("Delete is not supported for markers. Markers must be removed from the marked object instead.");
65 public Integer
count(User creator
, MarkerType markerType
) {
66 Criteria criteria
= getSession().createCriteria(Marker
.class);
67 criteria
.add(Restrictions
.eq("createdBy", creator
));
68 if(markerType
!= null) {
69 criteria
.add(Restrictions
.eq("markerType", markerType
));
71 criteria
.setProjection(Projections
.rowCount());
72 return ((Number
)criteria
.uniqueResult()).intValue();
75 public List
<Marker
> list(User creator
, MarkerType markerType
, Integer pageSize
, Integer pageNumber
, List
<OrderHint
> orderHints
, List
<String
> propertyPaths
) {
76 Criteria criteria
= getSession().createCriteria(Marker
.class);
77 criteria
.add(Restrictions
.eq("createdBy", creator
));
78 if(markerType
!= null) {
79 criteria
.add(Restrictions
.eq("markerType", markerType
));
82 if(pageSize
!= null) {
83 criteria
.setMaxResults(pageSize
);
84 if(pageNumber
!= null) {
85 criteria
.setFirstResult(pageNumber
* pageSize
);
89 addOrder(criteria
, orderHints
);
90 @SuppressWarnings("unchecked")
91 List
<Marker
> results
= criteria
.list();
92 defaultBeanInitializer
.initializeAll(results
, propertyPaths
);