Revision 44763 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
DefaultExpressionBuilder.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl; |
2 | 2 |
|
3 | 3 |
import java.text.MessageFormat; |
4 |
import java.text.ParseException; |
|
5 |
import java.text.SimpleDateFormat; |
|
4 | 6 |
import java.util.ArrayList; |
5 | 7 |
import java.util.Collections; |
8 |
import java.util.Date; |
|
6 | 9 |
import java.util.HashSet; |
7 | 10 |
import java.util.List; |
8 | 11 |
import java.util.Objects; |
... | ... | |
12 | 15 |
import org.gvsig.expressionevaluator.Expression; |
13 | 16 |
|
14 | 17 |
import org.gvsig.expressionevaluator.ExpressionBuilder; |
15 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.EMPTY_FORMATTER; |
|
16 | 18 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.PARAMETER_TYPE_CONSTANT; |
17 | 19 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.PARAMETER_TYPE_VARIABLE; |
18 | 20 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator; |
... | ... | |
20 | 22 |
import org.gvsig.expressionevaluator.ExpressionUtils; |
21 | 23 |
import org.gvsig.expressionevaluator.Formatter; |
22 | 24 |
import org.gvsig.expressionevaluator.ReprMethod; |
25 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.BASE_FORMATTER; |
|
23 | 26 |
|
24 | 27 |
@SuppressWarnings({"UseSpecificCatch" ,"OverridableMethodCallInConstructor"}) |
25 | 28 |
public class DefaultExpressionBuilder implements ExpressionBuilder { |
... | ... | |
82 | 85 |
|
83 | 86 |
@Override |
84 | 87 |
public String toString() { |
85 |
return this.toString(EMPTY_FORMATTER);
|
|
88 |
return this.toString(BASE_FORMATTER);
|
|
86 | 89 |
} |
87 | 90 |
|
88 | 91 |
@Override |
... | ... | |
111 | 114 |
|
112 | 115 |
@Override |
113 | 116 |
public String toString() { |
114 |
return this.toString(EMPTY_FORMATTER);
|
|
117 |
return this.toString(BASE_FORMATTER);
|
|
115 | 118 |
} |
116 | 119 |
|
117 | 120 |
@Override |
... | ... | |
239 | 242 |
|
240 | 243 |
@Override |
241 | 244 |
public String toString() { |
242 |
return this.toString(EMPTY_FORMATTER);
|
|
245 |
return this.toString(BASE_FORMATTER);
|
|
243 | 246 |
} |
244 | 247 |
|
245 | 248 |
@Override |
... | ... | |
275 | 278 |
|
276 | 279 |
@Override |
277 | 280 |
public String toString() { |
278 |
return this.toString(EMPTY_FORMATTER);
|
|
281 |
return this.toString(BASE_FORMATTER);
|
|
279 | 282 |
} |
280 | 283 |
|
281 | 284 |
@Override |
... | ... | |
367 | 370 |
|
368 | 371 |
@Override |
369 | 372 |
public String toString() { |
370 |
return this.toString(EMPTY_FORMATTER);
|
|
373 |
return this.toString(BASE_FORMATTER);
|
|
371 | 374 |
} |
372 | 375 |
|
373 | 376 |
@Override |
... | ... | |
441 | 444 |
|
442 | 445 |
@Override |
443 | 446 |
public String toString() { |
444 |
return this.toString(EMPTY_FORMATTER);
|
|
447 |
return this.toString(BASE_FORMATTER);
|
|
445 | 448 |
} |
446 | 449 |
|
447 | 450 |
@Override |
... | ... | |
598 | 601 |
|
599 | 602 |
@Override |
600 | 603 |
public String toString() { |
601 |
return this.toString(EMPTY_FORMATTER);
|
|
604 |
return this.toString(BASE_FORMATTER);
|
|
602 | 605 |
} |
603 | 606 |
|
604 | 607 |
@Override |
... | ... | |
1333 | 1336 |
} |
1334 | 1337 |
|
1335 | 1338 |
@Override |
1339 |
public Function date(Date date) { |
|
1340 |
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); |
|
1341 |
return function(FUNCTION_DATE, constant(df.format(date))); |
|
1342 |
} |
|
1343 |
|
|
1344 |
@Override |
|
1345 |
public Function time(Date time) { |
|
1346 |
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss"); |
|
1347 |
return function(FUNCTION_TIME, constant(df.format(time))); |
|
1348 |
} |
|
1349 |
|
|
1350 |
@Override |
|
1351 |
public Function timestamp(Date timestamp) { |
|
1352 |
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
|
1353 |
return function(FUNCTION_TIMESTAMP, constant(df.format(timestamp))); |
|
1354 |
} |
|
1355 |
|
|
1356 |
@Override |
|
1357 |
public Function date(String date) { |
|
1358 |
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); |
|
1359 |
Date d; |
|
1360 |
try { |
|
1361 |
d = df.parse(date); |
|
1362 |
} catch (ParseException ex) { |
|
1363 |
throw new IllegalArgumentException("Can't parse argument '"+date+"' as date.", ex); |
|
1364 |
} |
|
1365 |
return function(FUNCTION_DATE, constant(df.format(d))); |
|
1366 |
} |
|
1367 |
|
|
1368 |
@Override |
|
1369 |
public Function time(String time) { |
|
1370 |
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss"); |
|
1371 |
Date t; |
|
1372 |
try { |
|
1373 |
t = df.parse(time); |
|
1374 |
} catch (ParseException ex) { |
|
1375 |
throw new IllegalArgumentException("Can't parse argument '"+time+"' as date.", ex); |
|
1376 |
} |
|
1377 |
return function(FUNCTION_TIME, constant(df.format(t))); |
|
1378 |
} |
|
1379 |
|
|
1380 |
@Override |
|
1381 |
public Function timestamp(String timestamp) { |
|
1382 |
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
|
1383 |
Date ts; |
|
1384 |
try { |
|
1385 |
ts = df.parse(timestamp); |
|
1386 |
} catch (ParseException ex) { |
|
1387 |
throw new IllegalArgumentException("Can't parse argument '"+timestamp+"' as date.", ex); |
|
1388 |
} |
|
1389 |
return function(FUNCTION_TIMESTAMP, constant(df.format(ts))); |
|
1390 |
} |
|
1391 |
|
|
1392 |
@Override |
|
1336 | 1393 |
public Function date(Value date) { |
1337 | 1394 |
return function(FUNCTION_DATE, date); |
1338 | 1395 |
} |
Also available in: Unified diff