svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.expressionevaluator / org.gvsig.expressionevaluator.swing / org.gvsig.expressionevaluator.swing.impl / src / main / java / org / gvsig / expressionevaluator / swing / impl / ComparatorUtils.java @ 44006
History | View | Annotate | Download (1.21 KB)
1 |
package org.gvsig.expressionevaluator.swing.impl; |
---|---|
2 |
|
3 |
import java.util.Comparator; |
4 |
import java.util.Objects; |
5 |
import org.apache.commons.lang3.math.NumberUtils; |
6 |
|
7 |
/*
|
8 |
* To change this license header, choose License Headers in Project Properties.
|
9 |
* To change this template file, choose Tools | Templates
|
10 |
* and open the template in the editor.
|
11 |
*/
|
12 |
/**
|
13 |
*
|
14 |
* @author jjdelcerro
|
15 |
*/
|
16 |
public class ComparatorUtils { |
17 |
|
18 |
public static Comparator naturalComparator() { |
19 |
return new Comparator() { |
20 |
@Override
|
21 |
public int compare(Object o1, Object o2) { |
22 |
if (o1 instanceof Double) { |
23 |
return Double.compare((Double) o1, (Double) o2); |
24 |
} else if (o1 instanceof Float) { |
25 |
return Double.compare((Float) o1, (Float) o2); |
26 |
} else if (o1 instanceof Number) { |
27 |
return Double.compare( getLong((Number) o1), getLong((Number) o2)); |
28 |
} else {
|
29 |
return Objects.toString(o1, "").compareTo(Objects.toString(o2, "")); |
30 |
} |
31 |
} |
32 |
}; |
33 |
} |
34 |
|
35 |
private static long getLong(Number n) { |
36 |
if( n==null ) { |
37 |
return 0; |
38 |
} |
39 |
return n.longValue();
|
40 |
} |
41 |
} |