Project

General

Profile

« Previous | Next » 

Revision 8497c5f5

Added by Andreas Kohlbecker almost 8 years ago

refactoring NodeSortMode

View differences:

cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/NodeSortMode.java
1 1
package eu.etaxonomy.cdm.api.service;
2 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

  
3 10
public enum NodeSortMode {
4
	NaturalOrder,
5
	RankAndAlphabeticalOrder,
6
	AlphabeticalOrder
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
    }
7 40
}

Also available in: Unified diff