fix #8458: remove unused parameter
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / NodeSortMode.java
index 4aed0d8f0c5d7a4ff813f2e7d52c3fa28c147609..ba2cc6c3c4ba9fc58cf3bbb9a4adc80649a3712c 100644 (file)
@@ -1,7 +1,40 @@
 package eu.etaxonomy.cdm.api.service;\r
 \r
+import java.util.Comparator;\r
+\r
+import eu.etaxonomy.cdm.model.taxon.TaxonNaturalComparator;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonNodeByNameComparator;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonNodeByRankAndNameComparator;\r
+\r
 public enum NodeSortMode {\r
-       NaturalOrder,\r
-       RankAndAlphabeticalOrder,\r
-       AlphabeticalOrder\r
+\r
+       NaturalOrder(TaxonNaturalComparator.class),\r
+       /**\r
+     * sorts by TaxonName titleCaches and rank associated with the taxonNodes\r
+     */\r
+       RankAndAlphabeticalOrder(TaxonNodeByRankAndNameComparator.class),\r
+       /**\r
+        * sorts by TaxonName titleCaches associated with the taxonNodes\r
+        */\r
+       AlphabeticalOrder(TaxonNodeByNameComparator.class);\r
+\r
+       private Class<? extends Comparator<TaxonNode>> type;\r
+\r
+    NodeSortMode(Class<? extends Comparator<TaxonNode>> type){\r
+           this.type = type;\r
+       }\r
+\r
+    /**\r
+     * @return\r
+     */\r
+    public Comparator<TaxonNode> newComparator() {\r
+        try {\r
+            return type.newInstance();\r
+        } catch (InstantiationException e) {\r
+            throw new RuntimeException(e);\r
+        } catch (IllegalAccessException e) {\r
+            throw new RuntimeException(e);\r
+        }\r
+    }\r
 }\r