Occurrence Service
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / OccurrenceServiceImpl.java
1 /**
2 * Copyright (C) 2008 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 */
6
7 package eu.etaxonomy.cdm.api.service;
8
9 import java.util.ArrayList;
10 import java.util.Collection;
11 import java.util.List;
12 import java.util.Map;
13 import java.util.UUID;
14
15 import org.apache.log4j.Logger;
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.model.common.DefinedTermBase;
21 import eu.etaxonomy.cdm.model.common.Language;
22 import eu.etaxonomy.cdm.model.common.Representation;
23 import eu.etaxonomy.cdm.model.location.WaterbodyOrCountry;
24 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
25 import eu.etaxonomy.cdm.persistence.dao.common.IDefinedTermDao;
26 import eu.etaxonomy.cdm.persistence.dao.name.ITaxonNameDao;
27 import eu.etaxonomy.cdm.persistence.dao.occurrence.IOccurrenceDao;
28
29 /**
30 * @author a.babadshanjan
31 * @created 01.09.2008
32 */
33 @Service
34 @Transactional(readOnly = true)
35 public class OccurrenceServiceImpl extends IdentifiableServiceBase<SpecimenOrObservationBase> implements IOccurrenceService {
36
37 static private final Logger logger = Logger.getLogger(OccurrenceServiceImpl.class);
38
39 @Autowired
40 protected void setDao(IOccurrenceDao dao) {
41 this.dao = dao;
42 }
43
44 @Autowired
45 private IDefinedTermDao definedTermDao;
46
47 @Autowired
48 private IOccurrenceDao daotest;
49
50
51 public OccurrenceServiceImpl() {
52 logger.debug("Load OccurrenceService Bean");
53 }
54
55 /* (non-Javadoc)
56 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getAllspecimenOrObservationBases(int, int)
57 */
58 public List<SpecimenOrObservationBase> getAllSpecimenOrObservationBases(
59 int limit, int start) {
60 return dao.list(limit, start);
61 }
62
63 /* (non-Javadoc)
64 * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#saveSpecimenOrObservationBaseAll(java.util.Collection)
65 */
66 @Transactional(readOnly = false)
67 public Map<UUID, ? extends SpecimenOrObservationBase> saveSpecimenOrObservationBaseAll(
68 Collection<? extends SpecimenOrObservationBase> specimenOrObservationBaseCollection) {
69 return saveCdmObjectAll(specimenOrObservationBaseCollection);
70 }
71
72
73 @Transactional(readOnly = false)
74 public UUID saveSpecimenOrObservationBase(
75 SpecimenOrObservationBase specimenOrObservationBase) {
76 return super.saveCdmObject(specimenOrObservationBase);
77 }
78
79 /* (non-Javadoc)
80 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#generateTitleCache()
81 */
82 public void generateTitleCache() {
83 // TODO Auto-generated method stub
84 logger.warn("Not yet implemented");
85 }
86
87 public WaterbodyOrCountry getCountryByIso(String iso639) {
88 return this.definedTermDao.getCountryByIso(iso639);
89
90 }
91
92 public List<WaterbodyOrCountry> getWaterbodyOrCountryByName(String name) {
93 List<? extends DefinedTermBase> terms = this.definedTermDao.getDefinedTermByRepresentationText(name, WaterbodyOrCountry.class);
94 List<WaterbodyOrCountry> countries = new ArrayList<WaterbodyOrCountry>();
95 for (int i=0;i<terms.size();i++){
96 countries.add((WaterbodyOrCountry)terms.get(i));
97 }
98 return countries;
99 }
100
101 public List<eu.etaxonomy.cdm.model.occurrence.Collection> searchCollectionByCode(String code) {
102 return this.daotest.getCollectionByCode(code);
103 }
104
105 }