X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Ftest%2Ftree%2FTreeTestResult.java;fp=org.argeo.slc%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Ftest%2Ftree%2FTreeTestResult.java;h=3134e1aaad2cec82cd7a21587edd694a1d479ef1;hb=7756b44bff90cc8cb20e16e426c39f82ba89705e;hp=0000000000000000000000000000000000000000;hpb=2052d0beab9c68880b3e8b0172a707274004b35f;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java b/org.argeo.slc/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java new file mode 100644 index 000000000..3134e1aaa --- /dev/null +++ b/org.argeo.slc/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java @@ -0,0 +1,76 @@ +package org.argeo.slc.core.test.tree; + +import java.util.List; +import java.util.SortedMap; +import java.util.TreeMap; +import java.util.Vector; + +import org.argeo.slc.core.SlcException; +import org.argeo.slc.core.structure.StructureAware; +import org.argeo.slc.core.structure.StructurePath; +import org.argeo.slc.core.structure.StructureRegistry; +import org.argeo.slc.core.structure.tree.TreeSPath; +import org.argeo.slc.core.test.TestResult; +import org.argeo.slc.core.test.TestResultId; +import org.argeo.slc.core.test.TestResultListener; +import org.argeo.slc.core.test.TestResultPart; + +public class TreeTestResult implements TestResult, StructureAware { + private TestResultId testResultId; + private List listeners; + + private TreeSPath currentPath; + + private SortedMap> resultParts = new TreeMap>(); + + public TestResultId getTestResultId() { + return testResultId; + } + + public void setTestResultId(TestResultId testResultId) { + this.testResultId = testResultId; + } + + public void setListeners(List listeners) { + this.listeners = listeners; + } + + public void addResultPart(TestResultPart part) { + if(currentPath==null){ + throw new SlcException("No current path set."); + } + List list = resultParts.get(currentPath); + if(list == null){ + list = new Vector(); + resultParts.put(currentPath, list); + } + list.add(part); + + // notify listeners + for(TestResultListener listener: listeners){ + listener.resultPartAdded(this, part); + } + } + + public List listResultParts() { + List all = new Vector(); + for(TreeSPath path:resultParts.keySet()){ + all.addAll(resultParts.get(path)); + } + return all; + } + + public void notifyCurrentPath(StructureRegistry registry, StructurePath path) { + currentPath = (TreeSPath) path; + } + + public TreeSPath getCurrentPath() { + return currentPath; + } + + public SortedMap> getResultParts() { + return resultParts; + } + + +}