Project

General

Profile

Download (1.16 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.cdm.api.service;
2

    
3
import java.util.Comparator;
4

    
5
import eu.etaxonomy.cdm.model.taxon.TaxonNaturalComparator;
6
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
7
import eu.etaxonomy.cdm.model.taxon.TaxonNodeByNameComparator;
8
import eu.etaxonomy.cdm.model.taxon.TaxonNodeByRankAndNameComparator;
9

    
10
public enum NodeSortMode {
11

    
12
	NaturalOrder(TaxonNaturalComparator.class),
13
	/**
14
     * sorts by TaxonName titleCaches and rank associated with the taxonNodes
15
     */
16
	RankAndAlphabeticalOrder(TaxonNodeByRankAndNameComparator.class),
17
	/**
18
	 * sorts by TaxonName titleCaches associated with the taxonNodes
19
	 */
20
	AlphabeticalOrder(TaxonNodeByNameComparator.class);
21

    
22
	private Class<? extends Comparator<TaxonNode>> type;
23

    
24
    NodeSortMode(Class<? extends Comparator<TaxonNode>> type){
25
	    this.type = type;
26
	}
27

    
28
    /**
29
     * @return
30
     */
31
    public Comparator<TaxonNode> newComparator() {
32
        try {
33
            return type.newInstance();
34
        } catch (InstantiationException e) {
35
            throw new RuntimeException(e);
36
        } catch (IllegalAccessException e) {
37
            throw new RuntimeException(e);
38
        }
39
    }
40
}
(77-77/97)