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 @ 44098
History | View | Annotate | Download (3.96 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 Double) { |
29 |
return Double.compare((Double) o1, (Double) o2); |
30 |
} else if (o1 instanceof Float) { |
31 |
return Double.compare((Float) o1, (Float) o2); |
32 |
} else if (o1 instanceof Number) { |
33 |
return Double.compare( getLong((Number) o1), getLong((Number) o2)); |
34 |
} else {
|
35 |
return Objects.toString(o1, "").compareTo(Objects.toString(o2, "")); |
36 |
} |
37 |
} |
38 |
}; |
39 |
} |
40 |
|
41 |
private static long getLong(Number n) { |
42 |
if( n==null ) { |
43 |
return 0; |
44 |
} |
45 |
return n.longValue();
|
46 |
} |
47 |
|
48 |
public static String repr(Object value) { |
49 |
if (value == null) { |
50 |
return "NULL"; |
51 |
} else if (value instanceof Date) { |
52 |
return "'" + StringEscapeUtils.escapeSql(((Date) value).toString()) + "'"; |
53 |
// return "DATE('" + value + "')";
|
54 |
} else if (value instanceof Boolean) { |
55 |
return value.toString();
|
56 |
} else if (value instanceof String) { |
57 |
return "'" + StringEscapeUtils.escapeSql((String) value) + "'"; |
58 |
} else if (value instanceof Geometry) { |
59 |
ExpressionBuilder builder = ExpressionEvaluatorLocator.getManager().createExpressionBuilder(); |
60 |
return builder.geometry((Geometry)value).toString();
|
61 |
} else if (value instanceof Envelope) { |
62 |
ExpressionBuilder builder = ExpressionEvaluatorLocator.getManager().createExpressionBuilder(); |
63 |
return builder.envelope((Envelope)value).toString();
|
64 |
} else if (value instanceof Time) { |
65 |
return "'" + StringEscapeUtils.escapeSql(((Date) value).toString()) + "'"; |
66 |
} else if (value instanceof Number) { |
67 |
return ((Number)value).toString(); |
68 |
} else {
|
69 |
return StringEscapeUtils.escapeSql(value.toString());
|
70 |
} |
71 |
|
72 |
} |
73 |
|
74 |
public static String toString(Object value) { |
75 |
if (value == null) { |
76 |
return "NULL"; |
77 |
} else if (value instanceof Date) { |
78 |
return "'" + StringEscapeUtils.escapeSql(((Date) value).toString()) + "'"; |
79 |
// return "DATE('" + value + "')";
|
80 |
} else if (value instanceof Boolean) { |
81 |
return value.toString();
|
82 |
} else if (value instanceof String) { |
83 |
return "'" + StringEscapeUtils.escapeSql((String) value) + "'"; |
84 |
} else if (value instanceof Geometry) { |
85 |
try {
|
86 |
return ((Geometry)value).convertToWKT();
|
87 |
} catch (Exception ex) { |
88 |
return "[ERROR] "+ex.getMessage(); |
89 |
} |
90 |
} else if (value instanceof Envelope) { |
91 |
try {
|
92 |
return ((Envelope)value).getGeometry().convertToWKT();
|
93 |
} catch (Exception ex) { |
94 |
return "[ERROR] "+ex.getMessage(); |
95 |
} |
96 |
} else if (value instanceof Time) { |
97 |
return "'" + StringEscapeUtils.escapeSql(((Date) value).toString()) + "'"; |
98 |
} else if (value instanceof Number) { |
99 |
return ((Number)value).toString(); |
100 |
} else {
|
101 |
return StringEscapeUtils.escapeSql(value.toString());
|
102 |
} |
103 |
|
104 |
} |
105 |
|
106 |
} |