cleanup
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / store / TermStore.java
index 3db2afee30791caa4bcc6a7f23c1b70ab0a6c410..cae6e4b39b17c650adea93db55ce99c13eac07ef 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2007 EDIT
 * European Distributed Institute of Taxonomy
@@ -20,13 +19,12 @@ import java.util.Set;
 
 import eu.etaxonomy.cdm.api.service.ITermService;
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
-import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.cdm.model.common.TermType;
-import eu.etaxonomy.cdm.model.description.AbsenceTerm;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.model.term.TermVocabulary;
 import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
-import eu.etaxonomy.cdm.model.description.PresenceTerm;
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.cdm.model.name.Rank;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
 import eu.etaxonomy.taxeditor.model.DefaultTermComparator;
@@ -61,10 +59,21 @@ public class TermStore {
         * @param termType the term type
         * @return an alphabetically sorted list of terms
         */
-       public static List<DefinedTermBase<?>> getTerms(TermType termType, Comparator<DefinedTermBase<?>> comparator){
+       public static <TERM extends DefinedTermBase> List<TERM> getTerms(TermType termType, Comparator<TERM> comparator){
         return getTermsFromService(termType, comparator);
        }
 
+       /**
+        * Returns an alphabetically sorted list of terms (anything that extends {@link DefinedTermBase}) of the given {@link TermType})
+        * currently available in the system.
+        *
+        * @param termType the term type
+        * @return an alphabetically sorted list of terms
+        */
+       public static <TERM extends DefinedTermBase> Set<TERM> getTerms(TermVocabulary<TERM> termVocabulary, Comparator<DefinedTermBase<?>> comparator){
+           return termVocabulary.getTerms();
+       }
+
        /**
         * Returns a list of terms of the given type currently available in the system.
         * If <code>filtered</code> is set to <code>true</code>, all terms for certain types will be
@@ -95,12 +104,12 @@ public class TermStore {
         * @param comparator
         * @return
         */
-       private static List<DefinedTermBase<?>> getTermsFromService(TermType termType, Comparator<DefinedTermBase<?>> comparator){
+       private static <T extends DefinedTermBase> List<T> getTermsFromService(TermType termType, Comparator<T> comparator){
            if (comparator == null){
-               comparator = new DefaultTermComparator<DefinedTermBase<?>>();
+               comparator = new DefaultTermComparator<T>();
            }
 
-           List<DefinedTermBase<?>> terms = CdmStore.getService(ITermService.class).listByTermType(termType, null, null, null, null);
+           List<T> terms = CdmStore.getService(ITermService.class).listByTermType(termType, null, null, null, null);
            Collections.sort(terms, comparator);
            return terms;
        }
@@ -122,7 +131,7 @@ public class TermStore {
        }
 
        /**
-        * @param term a {@link eu.etaxonomy.cdm.model.common.DefinedTermBase} object.
+        * @param term a {@link eu.etaxonomy.cdm.model.term.DefinedTermBase} object.
         */
        public static void saveTerm(DefinedTermBase term){
                CdmStore.getService(ITermService.class).saveOrUpdate(term);
@@ -131,7 +140,7 @@ public class TermStore {
        /**
         * <p>delete</p>
         *
-        * @param selected a {@link eu.etaxonomy.cdm.model.common.DefinedTermBase} object.
+        * @param selected a {@link eu.etaxonomy.cdm.model.term.DefinedTermBase} object.
         * @throws ReferencedObjectUndeletableException
         */
        public static void delete(DefinedTermBase selected) throws ReferencedObjectUndeletableException {
@@ -141,7 +150,7 @@ public class TermStore {
        /**
         * Save a vacabulary to data store
         *
-        * @param term a {@link eu.etaxonomy.cdm.model.common.DefinedTermBase} object.
+        * @param term a {@link eu.etaxonomy.cdm.model.term.DefinedTermBase} object.
         */
        public static void updateVocabulary(DefinedTermBase term) {
                CdmStore.getService(ITermService.class).saveOrUpdate(term);
@@ -215,17 +224,16 @@ public class TermStore {
                        }
 
                });
-               termStoreEdgeCases.add(new ITermStoreEdgeCase<PresenceAbsenceTermBase>() {
+               termStoreEdgeCases.add(new ITermStoreEdgeCase<PresenceAbsenceTerm>() {
 
                        @Override
-                       public Class<PresenceAbsenceTermBase> getTermClass() {
-                               return PresenceAbsenceTermBase.class;
+                       public Class<PresenceAbsenceTerm> getTermClass() {
+                               return PresenceAbsenceTerm.class;
                        }
 
                        @Override
-                       public List<PresenceAbsenceTermBase> getTerms() {
-                               List presenceAbsenceTerms = TermStore.getTermsFromService(PresenceTerm.class, null);
-                               presenceAbsenceTerms.addAll(TermStore.getTermsFromService(AbsenceTerm.class, null));
+                       public List<PresenceAbsenceTerm> getTerms() {
+                               List<PresenceAbsenceTerm> presenceAbsenceTerms = TermStore.getTermsFromService(PresenceAbsenceTerm.class, null);
 
                                return presenceAbsenceTerms;
                        }