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 / Utils.java @ 44644

History | View | Annotate | Download (1.98 KB)

1
package org.gvsig.expressionevaluator.swing.impl;
2

    
3
import java.util.Comparator;
4
import java.util.Objects;
5
import org.gvsig.expressionevaluator.ExpressionUtils;
6

    
7

    
8
/**
9
 *
10
 * @author jjdelcerro
11
 */
12
public class Utils {
13

    
14
    public static Comparator naturalComparator() {
15
        return new Comparator() {
16
            @Override
17
            public int compare(Object o1, Object o2) {
18
                if (o1 instanceof Integer && o2 instanceof Number ) {
19
                    return Long.compare((Integer) o1, ((Number)o2).intValue());
20
                    
21
                } else if (o1 instanceof Long && o2 instanceof Number ) {
22
                    return Long.compare((Long) o1, ((Number)o2).longValue());
23
                    
24
                } else if (o1 instanceof Double && o2 instanceof Number ) {
25
                    return Double.compare((Double) o1, ((Number)o2).doubleValue());
26
                    
27
                } else if (o1 instanceof Float && o2 instanceof Number) {
28
                    return Double.compare((Float) o1, ((Number)o2).floatValue());
29
                    
30
                } else if (o1 instanceof Number && o2 instanceof Number) {
31
                    return Double.compare( getDouble((Number) o1), getDouble((Number) o2));
32
                    
33
                } else if (o1 instanceof String && o2 instanceof String) {
34
                    return ((String) o1).compareToIgnoreCase((String)o2);
35
                    
36
                } else {
37
                    try {
38
                        return ((Comparable) o1).compareTo((Comparable)o2);
39
                    } catch(Exception ex) {
40
                        return Objects.toString(o1, "").compareTo(Objects.toString(o2, ""));
41
                    }
42
                }
43
            }
44
        };
45
    }
46
    
47
    private static double getDouble(Number n) {
48
        if( n==null ) {
49
            return 0;
50
        }
51
        return n.doubleValue();
52
    }
53

    
54
    public static String repr(Object value)  {
55
        return ExpressionUtils.repr(value);
56
    }
57
    
58
}