|
29 | 29 | import eu.europa.ted.efx.model.expressions.TypedExpression; |
30 | 30 | import eu.europa.ted.efx.model.expressions.path.PathExpression; |
31 | 31 | import eu.europa.ted.efx.model.expressions.path.StringPathExpression; |
| 32 | +import eu.europa.ted.efx.model.expressions.scalar.DateExpression; |
32 | 33 | import eu.europa.ted.efx.model.expressions.scalar.StringExpression; |
| 34 | +import eu.europa.ted.efx.model.expressions.sequence.DateSequenceExpression; |
33 | 35 | import eu.europa.ted.efx.model.expressions.sequence.StringSequenceExpression; |
| 36 | +import eu.europa.ted.efx.model.expressions.sequence.TimeSequenceExpression; |
34 | 37 | import eu.europa.ted.efx.model.templates.ContentBlock; |
35 | 38 | import eu.europa.ted.efx.model.templates.ContentBlockStack; |
36 | 39 | import eu.europa.ted.efx.model.templates.Markup; |
@@ -496,9 +499,29 @@ public void exitStandardExpressionBlock(StandardExpressionBlockContext ctx) { |
496 | 499 | // functions. |
497 | 500 | if (TypedExpression.class.isAssignableFrom(expression.getClass())) { |
498 | 501 | if (EfxDataType.Date.class.isAssignableFrom(((TypedExpression) expression).getDataType())) { |
499 | | - expression = new StringExpression("format-date(" + expression.getScript() + ", '[D01]/[M01]/[Y0001]')"); |
| 502 | + |
| 503 | + var loopVariable = new Variable("item", |
| 504 | + this.script.composeVariableDeclaration("item", DateExpression.class), DateExpression.empty(), |
| 505 | + this.script.composeVariableReference("item", DateExpression.class)); |
| 506 | + |
| 507 | + expression = this.script.composeForExpression( |
| 508 | + this.script.composeIteratorList( |
| 509 | + List.of(this.script.composeIteratorExpression(loopVariable.declarationExpression, |
| 510 | + new DateSequenceExpression(expression.getScript())))), |
| 511 | + new StringExpression("format-date($item, '[D01]/[M01]/[Y0001]')"), |
| 512 | + StringSequenceExpression.class); |
500 | 513 | } else if (EfxDataType.Time.class.isAssignableFrom(((TypedExpression) expression).getDataType())) { |
501 | | - expression = new StringExpression("format-time(" + expression.getScript() + ", '[H01]:[m01] [Z]')"); |
| 514 | + |
| 515 | + var loopVariable = new Variable("item", |
| 516 | + this.script.composeVariableDeclaration("item", DateExpression.class), DateExpression.empty(), |
| 517 | + this.script.composeVariableReference("item", DateExpression.class)); |
| 518 | + |
| 519 | + expression = this.script.composeForExpression( |
| 520 | + this.script.composeIteratorList( |
| 521 | + List.of(this.script.composeIteratorExpression(loopVariable.declarationExpression, |
| 522 | + new TimeSequenceExpression(expression.getScript())))), |
| 523 | + new StringExpression("format-time($item, '[H01]:[m01] [Z]')"), |
| 524 | + StringSequenceExpression.class); |
502 | 525 | } |
503 | 526 | } |
504 | 527 |
|
|
0 commit comments