From 60e3c67783dfdae7636f705fc974c163ad22a288 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martti=20K=C3=A4=C3=A4rik?= Date: Wed, 5 Mar 2025 10:26:24 +0200 Subject: [PATCH] CastDataUse support for Java code generator --- .../java/codegen/JUnitTestGenerator.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/plugins/org.etsi.mts.tdl.execution.java.codegen/src/org/etsi/mts/tdl/execution/java/codegen/JUnitTestGenerator.java b/plugins/org.etsi.mts.tdl.execution.java.codegen/src/org/etsi/mts/tdl/execution/java/codegen/JUnitTestGenerator.java index 64c4a78d..7876f84e 100644 --- a/plugins/org.etsi.mts.tdl.execution.java.codegen/src/org/etsi/mts/tdl/execution/java/codegen/JUnitTestGenerator.java +++ b/plugins/org.etsi.mts.tdl.execution.java.codegen/src/org/etsi/mts/tdl/execution/java/codegen/JUnitTestGenerator.java @@ -27,6 +27,7 @@ import org.etsi.mts.tdl.Behaviour; import org.etsi.mts.tdl.Block; import org.etsi.mts.tdl.BoundedLoopBehaviour; import org.etsi.mts.tdl.Break; +import org.etsi.mts.tdl.CastDataUse; import org.etsi.mts.tdl.CollectionDataType; import org.etsi.mts.tdl.CombinedBehaviour; import org.etsi.mts.tdl.ComponentInstance; @@ -1703,6 +1704,15 @@ public class JUnitTestGenerator extends Renderer { PredefinedFunction predefinedFunction = null; List memberAssignments = null; List collectionItems = null; + DataType castTo = null; + + String ref = dataUseVariables.get(d); + List arguments = getDataUseArguments(d); + + if (d instanceof CastDataUse) { + castTo = ((CastDataUse) d).getDataType(); + d = ((CastDataUse) d).getDataUse(); + } if (d instanceof DataElementUse) { NamedElement element = ((DataElementUse) d).getDataElement(); @@ -1747,10 +1757,13 @@ public class JUnitTestGenerator extends Renderer { predefinedFunction = ((PredefinedFunctionCall) d).getFunction(); } - String ref = dataUseVariables.get(d); append(ref); if (!isUnmapped()) { append(" = "); + if (castTo != null) { + DataElementMapping m = getMappingChecked(castTo); + append("(" + m.getElementURI() + ")"); + } } String typeName = declaredTypes.get(d.resolveDataType()); @@ -1884,8 +1897,8 @@ public class JUnitTestGenerator extends Renderer { line(";"); - if (!getDataUseArguments(d).isEmpty()) { - for (ParameterBinding arg : getDataUseArguments(d)) { + if (!arguments.isEmpty()) { + for (ParameterBinding arg : arguments) { // TODO members of collection type append(ref); append("."); -- GitLab