Added documentation
authorn.hoffmann <n.hoffmann@localhost>
Wed, 18 Jan 2012 17:12:41 +0000 (17:12 +0000)
committern.hoffmann <n.hoffmann@localhost>
Wed, 18 Jan 2012 17:12:41 +0000 (17:12 +0000)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/DefaultTermComparator.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/TermStore.java

index a6a72d039a9e5a12dc1930a8308c0af6f44147b4..16c07dfc94a28de8aad4ddcbd6c0677db02e4496 100644 (file)
@@ -15,6 +15,10 @@ import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
+ * Implements a {@link Comparator} for {@link DefinedTermBase} objects based on the term's label.
+ * The compare algorithm compares a term's label. Example: If used on an unsorted list of terms, the
+ * list will be alphabetically  sorted by label afterwards.
+ * 
  * @author n.hoffmann
  * @date Jan 18, 2012
  *
index 9111b0eb1025f41c9f396b9a36cc7b2736d67744..ab52136365b62548298657675f3629e01fe29a6a 100644 (file)
@@ -42,6 +42,12 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
  */
 public class TermStore {
        
+       /**
+        * Returns an alphabetically sorted list of terms (anything that extends {@link DefinedTermBase}) of the given type currently available in the system. 
+        * 
+        * @param clazz a class that inherits from {@link DefinedTermBase}
+        * @return an alphabetically sorted list of terms
+        */
        public static <TERM extends DefinedTermBase> List<TERM> getTerms(Class<TERM> clazz){
                return getTerms(clazz, null, true);
        }
@@ -51,10 +57,10 @@ public class TermStore {
         * If <code>filtered</code> is set to <code>true</code>, all terms for certain types will be
         * gathered from edge cases.
         * 
-        * @param clazz
-        * @param comparator
-        * @param filtered Will filter out some results
-        * @return
+        * @param clazz a class that inherits from {@link DefinedTermBase}
+        * @param comparator a {@link Comparator} that defines the sorting algorithm. If set to null, {@link DefaultTermComparator} will be used
+        * @param filtered if set to true, some terms are filtered from the result (according to definition in {@link ITermStoreEdgeCase}s)
+        * @return a sorted list of terms
         */
        public static <TERM extends DefinedTermBase> List<TERM> getTerms(Class<TERM> clazz, Comparator<TERM> comparator, boolean filtered){
                List<TERM> terms = new ArrayList<TERM>();
@@ -70,6 +76,12 @@ public class TermStore {
                
        }
        
+       /**
+        * 
+        * @param termClass
+        * @param comparator
+        * @return
+        */
        private static <T extends DefinedTermBase> List<T> getTermsFromService(Class<T> termClass, Comparator<T> comparator){
                if (comparator == null){
                        comparator = new DefaultTermComparator<T>();
@@ -80,70 +92,6 @@ public class TermStore {
                return terms;
        }
        
-//     /**
-//      * <p>getFeatures</p>
-//      *
-//      * @return a {@link java.util.List} object.
-//      */
-//     public static List<Feature> getFeatures() {
-//             List<Feature> features = getTerms(Feature.class);
-//             features.remove(Feature.IMAGE());
-//             return features;
-//
-//     }
-//
-//
-//     /**
-//      * <p>getNonTechnicalMarkerTypes</p>
-//      *
-//      * @return a {@link java.util.List} object.
-//      */
-//     public static List<MarkerType> getNonTechnicalMarkerTypes() {
-//             List<MarkerType> nonTechnicalMarkerTypes = new ArrayList<MarkerType>();
-//             List<MarkerType> markerTypes = getTerms(MarkerType.class);
-//             
-//             for (Object type : markerTypes) {
-//                     if (((MarkerType) type).isTechnical() == false) {
-//                             nonTechnicalMarkerTypes.add((MarkerType) type);
-//                     }
-//             }
-//             
-//             return nonTechnicalMarkerTypes;
-//     }
-//
-//     /**
-//      * Retrieve all ranks from data store.
-//      *
-//      * @return a {@link java.util.List} object.
-//      */
-//     public static List<Rank> getRanks(){
-//             if(PreferencesUtil.getSortRanksHierarchichally()){
-//                     return getTerms(Rank.class, new Comparator<Rank>(){
-//     
-//                             @Override
-//                             public int compare(Rank o1, Rank o2) {
-//                                     return o1.compareTo(o2);
-//                             }
-//                             
-//                     });
-//             }else{
-//                     return getTerms(Rank.class);
-//             }
-//     }
-//     
-//     
-//     /**
-//      * Retrieve all presence and absence terms from data store.
-//      *
-//      * @return a {@link java.util.List} object.
-//      */
-//     public static List<PresenceAbsenceTermBase> getPresenceAbsenceTerms() {
-//             List presenceAbsenceTerms = getTerms(PresenceTerm.class);
-//             presenceAbsenceTerms.addAll(getTerms(AbsenceTerm.class));
-//
-//             return presenceAbsenceTerms;
-//     }
-       
        /**
         * @param term a {@link eu.etaxonomy.cdm.model.common.DefinedTermBase} object.
         */
@@ -168,6 +116,10 @@ public class TermStore {
        public static void updateVocabulary(DefinedTermBase term) {
                CdmStore.getService(ITermService.class).saveOrUpdate(term);
        }
+
+       /**
+        * Handingling of special cases
+        */
        
        private static Set<ITermStoreEdgeCase<? extends DefinedTermBase>> termStoreEdgeCases = new HashSet<ITermStoreEdgeCase<? extends DefinedTermBase>>();