X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=runtime%2Forg.argeo.slc.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Ftest%2Ftree%2FTreeTestResult.java;h=16eb26c53a320e0a74de326795fc9bf858154d13;hb=4acaa7b3eca85263027b1a8875cf0b1971a09c7b;hp=40eb00f8cb262c1659c87bc25f2e99372d7445e8;hpb=1fdb1b4e7b1d2b0cabb6483238301b857a6392fa;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java b/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java index 40eb00f8c..16eb26c53 100644 --- a/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java +++ b/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java @@ -20,7 +20,6 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.Date; import java.util.List; -import java.util.Map; import java.util.SortedMap; import java.util.TreeMap; import java.util.UUID; @@ -61,17 +60,19 @@ public class TreeTestResult implements TestResult, StructureAware, private List attachments = new ArrayList(); // Headers. Used to accelerate request on a specific test result. - private Map attributes = new TreeMap(); + private SortedMap attributes = new TreeMap(); // Runtime Data private TreeSPath currentPath; - private TestRun currentTestRun; + private transient TestRun currentTestRun; private Boolean warnIfAlreadyClosed = true; private Boolean strictChecks = false; // TODO is it really necessary closeDate == null ? private Boolean isClosed = false; - private List> listeners = new Vector>(); + private Boolean cache = true; + + private transient List> listeners = new Vector>(); /** Sets the list of listeners. */ public void setListeners(List> listeners) { @@ -89,15 +90,18 @@ public class TreeTestResult implements TestResult, StructureAware, if (currentPath == null) throw new SlcException("No current path set."); - PartSubList subList = resultParts.get(currentPath); - if (subList == null) { - subList = new PartSubList(); - resultParts.put(currentPath, subList); + if (cache) { + PartSubList subList = resultParts.get(currentPath); + if (subList == null) { + subList = new PartSubList(); + resultParts.put(currentPath, subList); + } + subList.getParts().add(part); } + if (part instanceof TestRunAware && currentTestRun != null) { ((TestRunAware) part).notifyTestRun(currentTestRun); } - subList.getParts().add(part); // notify listeners synchronized (listeners) { @@ -116,6 +120,9 @@ public class TreeTestResult implements TestResult, StructureAware, public void notifyCurrentPath(StructureRegistry registry, TreeSPath path) { + if (!cache) + return; + if (registry != null) { for (TreeSPath p : path.getHierarchyAsList()) { if (!elements.containsKey(p)) { @@ -146,8 +153,7 @@ public class TreeTestResult implements TestResult, StructureAware, } /** - * Used by ORM systems. - * Changed to public in order to enable jcr persistence + * Used by ORM systems. Changed to public in order to enable jcr persistence */ public void setResultParts(SortedMap resultParts) { this.resultParts = resultParts; @@ -272,11 +278,11 @@ public class TreeTestResult implements TestResult, StructureAware, return super.hashCode(); } - public Map getAttributes() { + public SortedMap getAttributes() { return attributes; } - public void setAttributes(Map attributes) { + public void setAttributes(SortedMap attributes) { this.attributes = attributes; } @@ -307,4 +313,12 @@ public class TreeTestResult implements TestResult, StructureAware, this.strictChecks = strictChecks; } + /** + * Whether information should be stored in thsi object or simply forwarded + * to teh listeners. + */ + public void setCache(Boolean cache) { + this.cache = cache; + } + }