]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.core/src/main/java/org/argeo/slc/msg/test/tree/ResultPartRequest.java
Improve web services
[gpl/argeo-slc.git] / org.argeo.slc.core / src / main / java / org / argeo / slc / msg / test / tree / ResultPartRequest.java
index 88f4f9f2c9dc2c9dea2ea897bd95f7497f8199c2..7e3750ea913b75c68db197cf15d9c7a7329fab32 100644 (file)
@@ -2,16 +2,17 @@ package org.argeo.slc.msg.test.tree;
 \r
 import java.util.Map;\r
 \r
+import org.argeo.slc.core.SlcException;\r
 import org.argeo.slc.core.structure.StructureElement;\r
 import org.argeo.slc.core.structure.tree.TreeSPath;\r
 import org.argeo.slc.core.test.SimpleResultPart;\r
-import org.argeo.slc.core.test.TestResultPart;\r
 import org.argeo.slc.core.test.TestRunDescriptor;\r
+import org.argeo.slc.core.test.tree.PartSubList;\r
 import org.argeo.slc.core.test.tree.TreeTestResult;\r
 \r
 public class ResultPartRequest {\r
        private String resultUuid;\r
-       private TestResultPart resultPart;\r
+       private SimpleResultPart resultPart;\r
        private TreeSPath path;\r
        private Map<TreeSPath, StructureElement> relatedElements;\r
        private TestRunDescriptor testRunDescriptor;\r
@@ -21,10 +22,27 @@ public class ResultPartRequest {
        }\r
 \r
        public ResultPartRequest(TreeTestResult ttr, TreeSPath path,\r
-                       TestResultPart resultPart) {\r
+                       SimpleResultPart resultPart) {\r
                resultUuid = ttr.getUuid();\r
                this.resultPart = resultPart;\r
-               this.path = path;\r
+               this.path = (path != null ? path : ttr.getCurrentPath());\r
+               relatedElements = ttr.getRelatedElements(this.path);\r
+               if (ttr.getCurrentTestRun() != null)\r
+                       testRunDescriptor = new TestRunDescriptor(ttr.getCurrentTestRun());\r
+       }\r
+\r
+       public ResultPartRequest(TreeTestResult ttr) {\r
+               resultUuid = ttr.getUuid();\r
+               this.path = ttr.getCurrentPath();\r
+\r
+               PartSubList lst = ttr.getResultParts().get(path);\r
+               if (lst.getParts().size() < 1) {\r
+                       throw new SlcException("Cannot find part for path " + path\r
+                                       + " in result " + resultUuid);\r
+               }\r
+\r
+               this.resultPart = (SimpleResultPart) lst.getParts().get(\r
+                               lst.getParts().size() - 1);\r
                relatedElements = ttr.getRelatedElements(path);\r
                if (ttr.getCurrentTestRun() != null)\r
                        testRunDescriptor = new TestRunDescriptor(ttr.getCurrentTestRun());\r
@@ -38,11 +56,11 @@ public class ResultPartRequest {
                this.resultUuid = resultUuid;\r
        }\r
 \r
-       public TestResultPart getResultPart() {\r
+       public SimpleResultPart getResultPart() {\r
                return resultPart;\r
        }\r
 \r
-       public void setResultPart(TestResultPart resultPart) {\r
+       public void setResultPart(SimpleResultPart resultPart) {\r
                this.resultPart = resultPart;\r
        }\r
 \r
@@ -71,4 +89,8 @@ public class ResultPartRequest {
                this.relatedElements = relatedElements;\r
        }\r
 \r
+       @Override\r
+       public String toString() {\r
+               return getClass().getSimpleName() + "#" + resultUuid + " " + path;\r
+       }\r
 }\r