Merge branch 'develop' of ssh://dev.e-taxonomy.eu/var/git/cdmlib into develop
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / AuditEventService.java
1 /**
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
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.
8 */
9 package eu.etaxonomy.cdm.api.service;
10
11 import java.util.ArrayList;
12 import java.util.List;
13 import java.util.UUID;
14
15 import org.joda.time.DateTime;
16 import org.springframework.beans.factory.annotation.Autowired;
17 import org.springframework.stereotype.Service;
18 import org.springframework.transaction.annotation.Transactional;
19
20 import eu.etaxonomy.cdm.api.service.pager.Pager;
21 import eu.etaxonomy.cdm.api.service.pager.impl.DefaultPagerImpl;
22 import eu.etaxonomy.cdm.model.view.AuditEvent;
23 import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
24 import eu.etaxonomy.cdm.persistence.view.IAuditEventDao;
25
26 @Service
27 @Transactional(readOnly = true)
28 public class AuditEventService implements IAuditEventService {
29
30 IAuditEventDao dao;
31
32 @Autowired
33 public void setDao(IAuditEventDao dao) {
34 this.dao = dao;
35 }
36
37 @Override
38 public boolean exists(UUID uuid) {
39 return dao.exists(uuid);
40 }
41
42 @Override
43 public AuditEvent find(Integer id) {
44 return dao.findById(id);
45 }
46
47 @Override
48 public AuditEvent find(UUID uuid) {
49 return dao.findByUuid(uuid);
50 }
51
52 @Override
53 public AuditEvent getNextAuditEvent(AuditEvent auditEvent) {
54 return dao.getNextAuditEvent(auditEvent);
55 }
56
57 @Override
58 public AuditEvent getPreviousAuditEvent(AuditEvent auditEvent) {
59 return dao.getPreviousAuditEvent(auditEvent);
60 }
61
62 @Override
63 public Pager<AuditEvent> list(Integer pageNumber, Integer pageSize, AuditEventSort sort) {
64 long numberOfResults = dao.count();
65
66 List<AuditEvent> results = new ArrayList<>();
67 if(numberOfResults > 0) { // no point checking again //TODO use AbstractPagerImpl.hasResultsInRange(numberOfResults, pageNumber, pageSize)
68 results = dao.list(pageNumber, pageSize, sort);
69 }
70
71 return new DefaultPagerImpl<>(pageNumber, numberOfResults, pageSize, results);
72 }
73
74 @Override
75 public AuditEvent find(DateTime dateTime) {
76 return dao.findByDate(dateTime);
77 }
78 }