Revision 44759
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