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 43983 jjdelcerro
package org.gvsig.expressionevaluator.swing.impl;
2
3
import java.util.Comparator;
4
import java.util.Objects;
5 44644 jjdelcerro
import org.gvsig.expressionevaluator.ExpressionUtils;
6 43983 jjdelcerro
7 44644 jjdelcerro
8 43983 jjdelcerro
/**
9
 *
10
 * @author jjdelcerro
11
 */
12 44098 jjdelcerro
public class Utils {
13 43983 jjdelcerro
14
    public static Comparator naturalComparator() {
15
        return new Comparator() {
16
            @Override
17
            public int compare(Object o1, Object o2) {
18 44259 jjdelcerro
                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 43983 jjdelcerro
                } else {
37 44259 jjdelcerro
                    try {
38
                        return ((Comparable) o1).compareTo((Comparable)o2);
39
                    } catch(Exception ex) {
40
                        return Objects.toString(o1, "").compareTo(Objects.toString(o2, ""));
41
                    }
42 43983 jjdelcerro
                }
43
            }
44
        };
45
    }
46 44006 jjdelcerro
47 44259 jjdelcerro
    private static double getDouble(Number n) {
48 44006 jjdelcerro
        if( n==null ) {
49
            return 0;
50
        }
51 44259 jjdelcerro
        return n.doubleValue();
52 44006 jjdelcerro
    }
53 44098 jjdelcerro
54
    public static String repr(Object value)  {
55 44644 jjdelcerro
        return ExpressionUtils.repr(value);
56 44098 jjdelcerro
    }
57
58 43983 jjdelcerro
}