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 / LocationServiceImpl.java
index 7f57f5ae5f131a55a9b107dd3044b45996a8cb6d..f2f160840939dcc0462c1e2929f33dad71bb2e1d 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2007 EDIT
 * European Distributed Institute of Taxonomy
@@ -18,31 +17,28 @@ import java.util.UUID;
 import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.common.DefinedTermBase;
-import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;
-import eu.etaxonomy.cdm.model.common.TermVocabulary;
-import eu.etaxonomy.cdm.model.description.AbsenceTerm;
-import eu.etaxonomy.cdm.model.description.PresenceTerm;
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.location.NamedAreaLevel;
 import eu.etaxonomy.cdm.model.location.NamedAreaType;
-import eu.etaxonomy.cdm.persistence.dao.common.IDefinedTermDao;
-import eu.etaxonomy.cdm.persistence.dao.common.IOrderedTermVocabularyDao;
-import eu.etaxonomy.cdm.persistence.dao.common.ITermVocabularyDao;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.OrderedTermVocabulary;
+import eu.etaxonomy.cdm.model.term.TermVocabulary;
+import eu.etaxonomy.cdm.persistence.dao.term.IDefinedTermDao;
+import eu.etaxonomy.cdm.persistence.dao.term.IOrderedTermVocabularyDao;
+import eu.etaxonomy.cdm.persistence.dao.term.ITermVocabularyDao;
 
 /**
  * Quick and dirty implementation of a location service as needed by the editor.
- * 
+ *
  * NOTE: Current implementation does not support the IService methods like {@link #save(DefinedTermBase)}
  * as no base dao is loaded by autowiring.
  *
  * @author n.hoffman
- * @created 08.04.2009
- * @version 1.0
+ * @since 08.04.2009
  */
 @Service
 @Transactional(readOnly = true)
@@ -63,25 +59,11 @@ public class LocationServiceImpl extends ServiceBase<DefinedTermBase,IDefinedTer
     /* (non-Javadoc)
      * @see eu.etaxonomy.cdm.api.service.ServiceBase#setDao(eu.etaxonomy.cdm.persistence.dao.common.ICdmEntityDao)
      */
-    @Override 
+    @Override
     protected void setDao(IDefinedTermDao dao) {
         this.dao = dao;
     }
 
-    /**
-     *  (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.service.ILocationService#getAbsenceTerms()
-     * FIXME Candidate for harmonization
-     * is this method a duplicate of termService.getVocabulary(VocabularyEnum.AbsenceTerm)?
-     */
-    public OrderedTermVocabulary<AbsenceTerm> getAbsenceTermVocabulary() {
-        String uuidString = "5cd438c8-a8a1-4958-842e-169e83e2ceee";
-        UUID uuid = UUID.fromString(uuidString);
-        OrderedTermVocabulary<AbsenceTerm> absenceTermVocabulary =
-            (OrderedTermVocabulary)orderedVocabularyDao.findByUuid(uuid);
-        return absenceTermVocabulary;
-    }
-
 
     /**
      * (non-Javadoc)
@@ -89,10 +71,11 @@ public class LocationServiceImpl extends ServiceBase<DefinedTermBase,IDefinedTer
      * FIXME Candidate for harmonization
      * is this method a duplicate of termService.getVocabulary(VocabularyEnum.PresenceTerm)
      */
-    public OrderedTermVocabulary<PresenceTerm> getPresenceTermVocabulary() {
+    @Override
+    public OrderedTermVocabulary<PresenceAbsenceTerm> getPresenceAbsenceTermVocabulary() {
         String uuidString = "adbbbe15-c4d3-47b7-80a8-c7d104e53a05";
         UUID uuid = UUID.fromString(uuidString);
-        OrderedTermVocabulary<PresenceTerm> presenceTermVocabulary =
+        OrderedTermVocabulary<PresenceAbsenceTerm> presenceTermVocabulary =
             (OrderedTermVocabulary)orderedVocabularyDao.findByUuid(uuid);
         return presenceTermVocabulary;
     }
@@ -100,6 +83,7 @@ public class LocationServiceImpl extends ServiceBase<DefinedTermBase,IDefinedTer
     /* (non-Javadoc)
      * @see eu.etaxonomy.cdm.api.service.ILocationService#getNamedAreaVocabularyTypes()
      */
+    @Override
     public List<NamedAreaVocabularyType> getNamedAreaVocabularyTypes() {
         List<NamedAreaVocabularyType> result = new ArrayList<NamedAreaVocabularyType>(3);
         result.add(NamedAreaVocabularyType.TDWG_AREA);
@@ -112,6 +96,7 @@ public class LocationServiceImpl extends ServiceBase<DefinedTermBase,IDefinedTer
     /* (non-Javadoc)
      * @see eu.etaxonomy.cdm.api.service.ILocationService#getNamedAreas(java.lang.Object)
      */
+    @Override
     public OrderedTermVocabulary<NamedArea> getNamedAreaVocabulary(NamedAreaVocabularyType vocabularyType) {
 
         UUID namedAreaVocabularyUuid = null;
@@ -134,6 +119,7 @@ public class LocationServiceImpl extends ServiceBase<DefinedTermBase,IDefinedTer
     /* (non-Javadoc)
      * @see eu.etaxonomy.cdm.api.service.ILocationService#getNamedAreaLevelVocabulary()
      */
+    @Override
     public OrderedTermVocabulary<NamedAreaLevel> getNamedAreaLevelVocabulary() {
         // TODO return namedAreaLevel filtered by NamedAreaVocabularyType
         String uuidString = "49034253-27c8-4219-97e8-f8d987d3d122";
@@ -149,6 +135,7 @@ public class LocationServiceImpl extends ServiceBase<DefinedTermBase,IDefinedTer
      * FIXME Candidate for harmonization
      * is this method a duplicate of termService.getVocabulary(VocabularyEnum.NamedAreaType)
      */
+    @Override
     public TermVocabulary<NamedAreaType> getNamedAreaTypeVocabulary() {
         String uuidString = "e51d52d6-965b-4f7d-900f-4ba9c6f5dd33";
         UUID uuid = UUID.fromString(uuidString);
@@ -157,14 +144,15 @@ public class LocationServiceImpl extends ServiceBase<DefinedTermBase,IDefinedTer
         return namedAreaTypeVocabulary;
     }
 
+    @Override
     public List<NamedArea> getTopLevelNamedAreasByVocabularyType(NamedAreaVocabularyType vocabularyType){
 
         OrderedTermVocabulary<NamedArea> vocabulary = getNamedAreaVocabulary(vocabularyType);
 
-        List<NamedArea> topLevelTerms = new ArrayList<NamedArea>();
+        List<NamedArea> topLevelTerms = new ArrayList<>();
 
 //             for(NamedArea area : vocabulary){
-        Iterator<NamedArea> it = vocabulary.iterator();
+        Iterator<NamedArea> it = vocabulary.getTerms().iterator();
         while(it.hasNext()){
 
             NamedArea area =  HibernateProxyHelper.deproxy(it.next(), NamedArea.class);