Loading plugins/org.etsi.mts.tdl.tools.to.docx.poi/src/org/etsi/mts/tdl/tools/to/docx/poi/Generator.java +52 −2 Original line number Diff line number Diff line Loading @@ -32,16 +32,21 @@ import org.eclipse.xtext.TerminalRule; import org.eclipse.xtext.XtextPackage; import org.eclipse.xtext.nodemodel.ICompositeNode; import org.eclipse.xtext.nodemodel.util.NodeModelUtils; import org.etsi.mts.tdl.Annotation; import org.etsi.mts.tdl.Behaviour; import org.etsi.mts.tdl.Block; import org.etsi.mts.tdl.CombinedBehaviour; import org.etsi.mts.tdl.CompoundBehaviour; import org.etsi.mts.tdl.ConditionalBehaviour; import org.etsi.mts.tdl.Element; import org.etsi.mts.tdl.LocalExpression; import org.etsi.mts.tdl.Package; import org.etsi.mts.tdl.ParameterBinding; import org.etsi.mts.tdl.SingleCombinedBehaviour; import org.etsi.mts.tdl.TestConfiguration; import org.etsi.mts.tdl.TestDescription; import org.etsi.mts.tdl.TestDescriptionReference; import org.etsi.mts.tdl.TestObjective; import org.etsi.mts.tdl.resources.ResourceHandler; import org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective; import org.etsi.mts.tdl.structuredobjectives.TestObjectiveVariant; Loading Loading @@ -141,8 +146,9 @@ public class Generator { LinkedHashMap<String, String> map = getTPDReplacementMap(tpd); generateTable(document, sectionTitle, map, prefix, i); //TODO: variants? reuse? // LinkedHashMap<String, LinkedHashMap<String,String>> variants = getSTOVariantsMap(sto); LinkedHashMap<String, LinkedHashMap<String,String>> variants = getTPDVariantsMap(tpd); // generateVariants(document, variants); generateVariants(document, variants, sectionTitle, prefix, i); i++; } } Loading Loading @@ -454,6 +460,50 @@ public class Generator { return variants; } private LinkedHashMap<String, LinkedHashMap<String, String>> getTPDVariantsMap(TestDescription tpd) { LinkedHashMap<String, LinkedHashMap<String, String>> variants = new LinkedHashMap<>(); //TODO: cache List<TestDescription> tds = EcoreUtil2.getAllContentsOfType(tpd.eResource(), TestDescription.class); for (TestDescription td : tds) { boolean isVariant = false; for (Annotation a : td.getAnnotation()) { if (a.getKey().getName().equals("Variant")) { isVariant = true; break; } } if (isVariant) { TestDescriptionReference tdr = EcoreUtil2.getAllContentsOfType(td, TestDescriptionReference.class).getFirst(); if (tdr.getTestDescription() == tpd) { variants.put(td.getName(), new LinkedHashMap<>()); if (!td.getTestObjective().isEmpty()) { //TODO: multiple? TestObjective to = td.getTestObjective().getFirst(); //check if identical? if (!tpd.getTestObjective().contains(to)) { variants.get(td.getName()).put("Description", to.getDescription() .replaceAll("\"", "") .replaceAll("\\s*\n\\s+", " ") ); variants.get(td.getName()).put("Reference", String.join("\n",to.getObjectiveURI())); } } Block b = (Block)tdr.container(); if (!b.getGuard().isEmpty()) { String pics = NodeModelUtils.getNode(b.getGuard().getFirst().getExpression()).getText().trim(); variants.get(td.getName()).put("PICS", pics); } for (ParameterBinding pb : tdr.getArgument()) { String value = pb.getParameter().getName(); String boundTo = NodeModelUtils.getNode(pb.getDataUse()).getText(); variants.get(td.getName()).put(value, boundTo); } } } } return variants; } private LinkedHashMap<String, String> getTPDReplacementMap(TestDescription tpd) { //map Loading Loading
plugins/org.etsi.mts.tdl.tools.to.docx.poi/src/org/etsi/mts/tdl/tools/to/docx/poi/Generator.java +52 −2 Original line number Diff line number Diff line Loading @@ -32,16 +32,21 @@ import org.eclipse.xtext.TerminalRule; import org.eclipse.xtext.XtextPackage; import org.eclipse.xtext.nodemodel.ICompositeNode; import org.eclipse.xtext.nodemodel.util.NodeModelUtils; import org.etsi.mts.tdl.Annotation; import org.etsi.mts.tdl.Behaviour; import org.etsi.mts.tdl.Block; import org.etsi.mts.tdl.CombinedBehaviour; import org.etsi.mts.tdl.CompoundBehaviour; import org.etsi.mts.tdl.ConditionalBehaviour; import org.etsi.mts.tdl.Element; import org.etsi.mts.tdl.LocalExpression; import org.etsi.mts.tdl.Package; import org.etsi.mts.tdl.ParameterBinding; import org.etsi.mts.tdl.SingleCombinedBehaviour; import org.etsi.mts.tdl.TestConfiguration; import org.etsi.mts.tdl.TestDescription; import org.etsi.mts.tdl.TestDescriptionReference; import org.etsi.mts.tdl.TestObjective; import org.etsi.mts.tdl.resources.ResourceHandler; import org.etsi.mts.tdl.structuredobjectives.StructuredTestObjective; import org.etsi.mts.tdl.structuredobjectives.TestObjectiveVariant; Loading Loading @@ -141,8 +146,9 @@ public class Generator { LinkedHashMap<String, String> map = getTPDReplacementMap(tpd); generateTable(document, sectionTitle, map, prefix, i); //TODO: variants? reuse? // LinkedHashMap<String, LinkedHashMap<String,String>> variants = getSTOVariantsMap(sto); LinkedHashMap<String, LinkedHashMap<String,String>> variants = getTPDVariantsMap(tpd); // generateVariants(document, variants); generateVariants(document, variants, sectionTitle, prefix, i); i++; } } Loading Loading @@ -454,6 +460,50 @@ public class Generator { return variants; } private LinkedHashMap<String, LinkedHashMap<String, String>> getTPDVariantsMap(TestDescription tpd) { LinkedHashMap<String, LinkedHashMap<String, String>> variants = new LinkedHashMap<>(); //TODO: cache List<TestDescription> tds = EcoreUtil2.getAllContentsOfType(tpd.eResource(), TestDescription.class); for (TestDescription td : tds) { boolean isVariant = false; for (Annotation a : td.getAnnotation()) { if (a.getKey().getName().equals("Variant")) { isVariant = true; break; } } if (isVariant) { TestDescriptionReference tdr = EcoreUtil2.getAllContentsOfType(td, TestDescriptionReference.class).getFirst(); if (tdr.getTestDescription() == tpd) { variants.put(td.getName(), new LinkedHashMap<>()); if (!td.getTestObjective().isEmpty()) { //TODO: multiple? TestObjective to = td.getTestObjective().getFirst(); //check if identical? if (!tpd.getTestObjective().contains(to)) { variants.get(td.getName()).put("Description", to.getDescription() .replaceAll("\"", "") .replaceAll("\\s*\n\\s+", " ") ); variants.get(td.getName()).put("Reference", String.join("\n",to.getObjectiveURI())); } } Block b = (Block)tdr.container(); if (!b.getGuard().isEmpty()) { String pics = NodeModelUtils.getNode(b.getGuard().getFirst().getExpression()).getText().trim(); variants.get(td.getName()).put("PICS", pics); } for (ParameterBinding pb : tdr.getArgument()) { String value = pb.getParameter().getName(); String boundTo = NodeModelUtils.getNode(pb.getDataUse()).getText(); variants.get(td.getName()).put(value, boundTo); } } } } return variants; } private LinkedHashMap<String, String> getTPDReplacementMap(TestDescription tpd) { //map Loading