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