*/
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);
}
* 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>();
}
+ /**
+ *
+ * @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>();
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.
*/
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>>();