Revision 44759

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/repr/ReprSQLTimestamp.java
1
package org.gvsig.expressionevaluator.impl.repr;
2

  
3
import java.text.SimpleDateFormat;
4
import org.gvsig.expressionevaluator.ReprMethod;
5
import java.util.Date;
6
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
7
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
8

  
9

  
10
/**
11
 *
12
 * @author jjdelcerro
13
 */
14
public class ReprSQLTimestamp implements ReprMethod {
15
    
16
    public ReprSQLTimestamp() {
17
    }
18
    
19
    @Override
20
    public String getName() {
21
        return this.getClass().getSimpleName();
22
    }
23
    
24
    @Override
25
    public boolean isApplicable(Object value) {
26
        return value instanceof java.sql.Timestamp;
27
    }
28

  
29
    @Override
30
    public String repr(Object value) {
31
        if( value == null ) {
32
          return "NULL";
33
        }
34
        Date d = (Date) value;
35
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
36
        return "'" + df.format(d) + "'";
37
    }
38

  
39
    public static void selfRegister() {
40
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
41
        manager.addReprMethod(new ReprSQLTimestamp());
42
    }
43

  
44
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/repr/ReprDate.java
1 1
package org.gvsig.expressionevaluator.impl.repr;
2 2

  
3
import java.text.SimpleDateFormat;
3 4
import org.gvsig.expressionevaluator.ReprMethod;
4 5
import java.util.Date;
5
import org.apache.commons.lang3.StringUtils;
6 6
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
7 7
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
8 8

  
......
23 23
    
24 24
    @Override
25 25
    public boolean isApplicable(Object value) {
26
        return value instanceof Date;
26
        if( !(value instanceof Date) ) {
27
          return false;
28
        } 
29
        if( value instanceof java.sql.Date ||
30
            value instanceof java.sql.Time ||
31
            value instanceof java.sql.Timestamp ) {
32
          return false;
33
        }
34
        return true;
27 35
    }
28 36

  
29 37
    @Override
30 38
    public String repr(Object value) {
31
        return "'" + StringUtils.replace(((Date) value).toString(), "'", "''") + "'";
39
        if( value == null ) {
40
          return "NULL";
41
        }
42
        Date d = (Date) value;
43
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
44
        return "'" + df.format(d) + "'";
32 45
    }
33 46

  
34 47
    public static void selfRegister() {
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/repr/ReprSQLDate.java
1
package org.gvsig.expressionevaluator.impl.repr;
2

  
3
import java.text.SimpleDateFormat;
4
import org.gvsig.expressionevaluator.ReprMethod;
5
import java.util.Date;
6
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
7
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
8

  
9

  
10
/**
11
 *
12
 * @author jjdelcerro
13
 */
14
public class ReprSQLDate implements ReprMethod {
15
    
16
    public ReprSQLDate() {
17
    }
18
    
19
    @Override
20
    public String getName() {
21
        return this.getClass().getSimpleName();
22
    }
23
    
24
    @Override
25
    public boolean isApplicable(Object value) {
26
        return value instanceof java.sql.Date;
27
    }
28

  
29
    @Override
30
    public String repr(Object value) {
31
        if( value == null ) {
32
          return "NULL";
33
        }
34
        Date d = (Date) value;
35
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
36
        return "'" + df.format(d) + "'";
37
    }
38

  
39
    public static void selfRegister() {
40
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
41
        manager.addReprMethod(new ReprSQLDate());
42
    }
43

  
44
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/repr/ReprSQLTime.java
1
package org.gvsig.expressionevaluator.impl.repr;
2

  
3
import java.text.SimpleDateFormat;
4
import org.gvsig.expressionevaluator.ReprMethod;
5
import java.util.Date;
6
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
7
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
8

  
9

  
10
/**
11
 *
12
 * @author jjdelcerro
13
 */
14
public class ReprSQLTime implements ReprMethod {
15
    
16
    public ReprSQLTime() {
17
    }
18
    
19
    @Override
20
    public String getName() {
21
        return this.getClass().getSimpleName();
22
    }
23
    
24
    @Override
25
    public boolean isApplicable(Object value) {
26
        return value instanceof java.sql.Time;
27
    }
28

  
29
    @Override
30
    public String repr(Object value) {
31
        if( value == null ) {
32
          return "NULL";
33
        }
34
        Date d = (Date) value;
35
        SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
36
        return "'" + df.format(d) + "'";
37
    }
38

  
39
    public static void selfRegister() {
40
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
41
        manager.addReprMethod(new ReprSQLTime());
42
    }
43

  
44
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/ExpressionEvaluatorImplLibrary.java
11 11
import org.gvsig.expressionevaluator.impl.repr.ReprCharSequence;
12 12
import org.gvsig.expressionevaluator.impl.repr.ReprDate;
13 13
import org.gvsig.expressionevaluator.impl.repr.ReprNumber;
14
import org.gvsig.expressionevaluator.impl.repr.ReprSQLDate;
15
import org.gvsig.expressionevaluator.impl.repr.ReprSQLTime;
16
import org.gvsig.expressionevaluator.impl.repr.ReprSQLTimestamp;
14 17
import org.gvsig.expressionevaluator.impl.symboltable.AggregateSymbolTableFactory;
15 18
import org.gvsig.expressionevaluator.impl.symboltable.BasicImageSymbolTableFactory;
16 19
import org.gvsig.expressionevaluator.impl.symboltable.FoldersSymbolTableFactory;
......
62 65
        ReprCharSequence.selfRegister();
63 66
        ReprNumber.selfRegister();
64 67
        ReprDate.selfRegister();
68
        ReprSQLDate.selfRegister();
69
        ReprSQLTime.selfRegister();
70
        ReprSQLTimestamp.selfRegister();
65 71
        
66 72
    }
67 73
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/date/DateFunction.java
30 30
    public Object call(Interpreter interpreter, Object[] args) {
31 31
        Object date_obj = getObject(args, 0);
32 32
        if( date_obj instanceof Date ) {
33
            Date x = new Date(((Date) date_obj).getTime());
34
            x.setHours(0);
35
            x.setMinutes(0);
36
            x.setSeconds(0);
33
            java.sql.Date x = new java.sql.Date(((Date) date_obj).getTime());
37 34
            return x;
38 35
        }
39 36
        String date = getStr(args, 0);
40 37
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
41 38
        try {
42
            Date x = df.parse(date);
43
            x.setHours(0);
44
            x.setMinutes(0);
45
            x.setSeconds(0);
39
            java.sql.Date x = java.sql.Date.valueOf(date);
46 40
            return x;
47
        } catch (ParseException ex) {
41
        } catch (Exception ex) {
48 42
            throw new RuntimeException("Can't parse date value '"+date+"', expected format 'yyyy-MM-dd'.", ex);
49 43
        }
50 44
        
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/date/TimeFunction.java
30 30
    public Object call(Interpreter interpreter, Object[] args) {
31 31
        Object date_obj = getObject(args, 0);
32 32
        if( date_obj instanceof Date ) {
33
            Date x = new Date(((Date) date_obj).getTime());
34
            x.setDate(0);
35
            x.setMonth(0);
36
            x.setYear(0);
33
            java.sql.Time x = new java.sql.Time(((Date) date_obj).getTime());
37 34
            return x;
38 35
        }
39 36
        String date = getStr(args, 0);
40 37
        SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
41 38
        try {
42
            Date x = df.parse(date);
43
            x.setDate(0);
44
            x.setMonth(0);
45
            x.setYear(0);
39
            java.sql.Time x = java.sql.Time.valueOf(date);
46 40
            return x;
47
        } catch (ParseException ex) {
41
        } catch (Exception ex) {
48 42
            throw new RuntimeException("Can't parse time value '"+date+"' expected format 'HH:mm:ss'.", ex);
49 43
        }
50 44
        
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/date/TimestampFunction.java
30 30
    public Object call(Interpreter interpreter, Object[] args) {
31 31
        Object date_obj = getObject(args, 0);
32 32
        if( date_obj instanceof Date ) {
33
            return date_obj;
33
            return new java.sql.Timestamp(((Date) date_obj).getTime());
34 34
        }
35 35
        String date = getStr(args, 0);
36 36
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
37 37
        try {
38
            Date x = df.parse(date);
38
            java.sql.Timestamp x = java.sql.Timestamp.valueOf(date);
39 39
            return x;
40
        } catch (ParseException ex) {
40
        } catch (Exception ex) {
41 41
            throw new RuntimeException("Can't parse timestamp value '"+date+"' expected format 'yyyy-MM-dd HH:mm:ss'.", ex);
42 42
        }
43 43
        
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultExpressionBuilder.java
15 15
import static org.gvsig.expressionevaluator.ExpressionBuilder.EMPTY_FORMATTER;
16 16
import static org.gvsig.expressionevaluator.ExpressionBuilder.PARAMETER_TYPE_CONSTANT;
17 17
import static org.gvsig.expressionevaluator.ExpressionBuilder.PARAMETER_TYPE_VARIABLE;
18
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
18 19
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
19 20
import org.gvsig.expressionevaluator.ExpressionUtils;
20 21
import org.gvsig.expressionevaluator.Formatter;
22
import org.gvsig.expressionevaluator.ReprMethod;
21 23

  
22 24
@SuppressWarnings({"UseSpecificCatch" ,"OverridableMethodCallInConstructor"})
23 25
public class DefaultExpressionBuilder implements ExpressionBuilder {
......
297 299
                    return FORMAT_FALSE;
298 300
                }
299 301
            }
300
            return Objects.toString(this.value, "");
302
            ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
303
            ReprMethod repr = manager.getReprMethod(this.value);            
304
            return repr.repr(value);
301 305
        }
302 306
    }
303 307

  

Also available in: Unified diff