Project

General

Profile

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

    
3
import java.util.Comparator;
4

    
5
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
6

    
7
public enum NodeDtoSortMode {
8

    
9
	NaturalOrder(TaxonNodeDtoNaturalComparator.class),
10
	/**
11
     * sorts by TaxonName titleCaches and rank associated with the taxonNodes
12
     */
13
	RankAndAlphabeticalOrder(TaxonNodeDtoByRankAndNameComparator.class),
14
	/**
15
	 * sorts by TaxonName titleCaches associated with the taxonNodes
16
	 */
17
	AlphabeticalOrder(TaxonNodeDtoByNameComparator.class);
18

    
19
	private Class<? extends Comparator<TaxonNodeDto>> type;
20

    
21
    NodeDtoSortMode(Class<? extends Comparator<TaxonNodeDto>> type){
22
	    this.type = type;
23
	}
24

    
25
    /**
26
     * @return
27
     */
28
    public Comparator<TaxonNodeDto> newComparator() {
29
        try {
30
            return type.newInstance();
31
        } catch (InstantiationException e) {
32
            throw new RuntimeException(e);
33
        } catch (IllegalAccessException e) {
34
            throw new RuntimeException(e);
35
        }
36
    }
37
}
(80-80/105)