Statistics
| Revision:

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
}