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 @ 44259
History | View | Annotate | Download (4.81 KB)
1 |
package org.gvsig.expressionevaluator.swing.impl; |
---|---|
2 |
|
3 |
import java.util.Comparator; |
4 |
import java.util.Date; |
5 |
import java.util.Objects; |
6 |
import org.apache.commons.lang.StringEscapeUtils; |
7 |
import org.gvsig.expressionevaluator.ExpressionBuilder; |
8 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator; |
9 |
import org.gvsig.fmap.geom.Geometry; |
10 |
import org.gvsig.fmap.geom.primitive.Envelope; |
11 |
import org.gvsig.timesupport.Time; |
12 |
|
13 |
/*
|
14 |
* To change this license header, choose License Headers in Project Properties.
|
15 |
* To change this template file, choose Tools | Templates
|
16 |
* and open the template in the editor.
|
17 |
*/
|
18 |
/**
|
19 |
*
|
20 |
* @author jjdelcerro
|
21 |
*/
|
22 |
public class Utils { |
23 |
|
24 |
public static Comparator naturalComparator() { |
25 |
return new Comparator() { |
26 |
@Override
|
27 |
public int compare(Object o1, Object o2) { |
28 |
if (o1 instanceof Integer && o2 instanceof Number ) { |
29 |
return Long.compare((Integer) o1, ((Number)o2).intValue()); |
30 |
|
31 |
} else if (o1 instanceof Long && o2 instanceof Number ) { |
32 |
return Long.compare((Long) o1, ((Number)o2).longValue()); |
33 |
|
34 |
} else if (o1 instanceof Double && o2 instanceof Number ) { |
35 |
return Double.compare((Double) o1, ((Number)o2).doubleValue()); |
36 |
|
37 |
} else if (o1 instanceof Float && o2 instanceof Number) { |
38 |
return Double.compare((Float) o1, ((Number)o2).floatValue()); |
39 |
|
40 |
} else if (o1 instanceof Number && o2 instanceof Number) { |
41 |
return Double.compare( getDouble((Number) o1), getDouble((Number) o2)); |
42 |
|
43 |
} else if (o1 instanceof String && o2 instanceof String) { |
44 |
return ((String) o1).compareToIgnoreCase((String)o2); |
45 |
|
46 |
} else {
|
47 |
try {
|
48 |
return ((Comparable) o1).compareTo((Comparable)o2); |
49 |
} catch(Exception ex) { |
50 |
return Objects.toString(o1, "").compareTo(Objects.toString(o2, "")); |
51 |
} |
52 |
} |
53 |
} |
54 |
}; |
55 |
} |
56 |
|
57 |
private static double getDouble(Number n) { |
58 |
if( n==null ) { |
59 |
return 0; |
60 |
} |
61 |
return n.doubleValue();
|
62 |
} |
63 |
|
64 |
public static String repr(Object value) { |
65 |
if (value == null) { |
66 |
return "NULL"; |
67 |
} else if (value instanceof Date) { |
68 |
return "'" + StringEscapeUtils.escapeSql(((Date) value).toString()) + "'"; |
69 |
// return "DATE('" + value + "')";
|
70 |
} else if (value instanceof Boolean) { |
71 |
return value.toString();
|
72 |
} else if (value instanceof String) { |
73 |
return "'" + StringEscapeUtils.escapeSql((String) value) + "'"; |
74 |
} else if (value instanceof Geometry) { |
75 |
ExpressionBuilder builder = ExpressionEvaluatorLocator.getManager().createExpressionBuilder(); |
76 |
return builder.geometry((Geometry)value).toString();
|
77 |
} else if (value instanceof Envelope) { |
78 |
ExpressionBuilder builder = ExpressionEvaluatorLocator.getManager().createExpressionBuilder(); |
79 |
return builder.envelope((Envelope)value).toString();
|
80 |
} else if (value instanceof Time) { |
81 |
return "'" + StringEscapeUtils.escapeSql(((Date) value).toString()) + "'"; |
82 |
} else if (value instanceof Number) { |
83 |
return ((Number)value).toString(); |
84 |
} else {
|
85 |
return StringEscapeUtils.escapeSql(value.toString());
|
86 |
} |
87 |
|
88 |
} |
89 |
|
90 |
public static String toString(Object value) { |
91 |
if (value == null) { |
92 |
return "NULL"; |
93 |
} else if (value instanceof Date) { |
94 |
return "'" + StringEscapeUtils.escapeSql(((Date) value).toString()) + "'"; |
95 |
// return "DATE('" + value + "')";
|
96 |
} else if (value instanceof Boolean) { |
97 |
return value.toString();
|
98 |
} else if (value instanceof String) { |
99 |
return "'" + StringEscapeUtils.escapeSql((String) value) + "'"; |
100 |
} else if (value instanceof Geometry) { |
101 |
try {
|
102 |
return ((Geometry)value).convertToWKT();
|
103 |
} catch (Exception ex) { |
104 |
return "[ERROR] "+ex.getMessage(); |
105 |
} |
106 |
} else if (value instanceof Envelope) { |
107 |
try {
|
108 |
return ((Envelope)value).getGeometry().convertToWKT();
|
109 |
} catch (Exception ex) { |
110 |
return "[ERROR] "+ex.getMessage(); |
111 |
} |
112 |
} else if (value instanceof Time) { |
113 |
return "'" + StringEscapeUtils.escapeSql(((Date) value).toString()) + "'"; |
114 |
} else if (value instanceof Number) { |
115 |
return ((Number)value).toString(); |
116 |
} else {
|
117 |
return StringEscapeUtils.escapeSql(value.toString());
|
118 |
} |
119 |
|
120 |
} |
121 |
|
122 |
} |