+\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