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 | } |