import java.util.ArrayList;\r
import java.util.Date;\r
import java.util.List;\r
-import java.util.Map;\r
import java.util.SortedMap;\r
import java.util.TreeMap;\r
import java.util.UUID;\r
private List<SimpleAttachment> attachments = new ArrayList<SimpleAttachment>();\r
\r
// Headers. Used to accelerate request on a specific test result.\r
- private Map<String, String> attributes = new TreeMap<String, String>();\r
+ private SortedMap<String, String> attributes = new TreeMap<String, String>();\r
\r
// Runtime Data\r
private TreeSPath currentPath;\r
- private TestRun currentTestRun;\r
+ private transient TestRun currentTestRun;\r
private Boolean warnIfAlreadyClosed = true;\r
private Boolean strictChecks = false;\r
// TODO is it really necessary closeDate == null ?\r
private Boolean isClosed = false;\r
\r
- private List<TestResultListener<TreeTestResult>> listeners = new Vector<TestResultListener<TreeTestResult>>();\r
+ private Boolean cache = true;\r
+\r
+ private transient List<TestResultListener<TreeTestResult>> listeners = new Vector<TestResultListener<TreeTestResult>>();\r
\r
/** Sets the list of listeners. */\r
public void setListeners(List<TestResultListener<TreeTestResult>> listeners) {\r
if (currentPath == null)\r
throw new SlcException("No current path set.");\r
\r
- PartSubList subList = resultParts.get(currentPath);\r
- if (subList == null) {\r
- subList = new PartSubList();\r
- resultParts.put(currentPath, subList);\r
+ if (cache) {\r
+ PartSubList subList = resultParts.get(currentPath);\r
+ if (subList == null) {\r
+ subList = new PartSubList();\r
+ resultParts.put(currentPath, subList);\r
+ }\r
+ subList.getParts().add(part);\r
}\r
+\r
if (part instanceof TestRunAware && currentTestRun != null) {\r
((TestRunAware) part).notifyTestRun(currentTestRun);\r
}\r
- subList.getParts().add(part);\r
\r
// notify listeners\r
synchronized (listeners) {\r
\r
public void notifyCurrentPath(StructureRegistry<TreeSPath> registry,\r
TreeSPath path) {\r
+ if (!cache)\r
+ return;\r
+\r
if (registry != null) {\r
for (TreeSPath p : path.getHierarchyAsList()) {\r
if (!elements.containsKey(p)) {\r
}\r
\r
/**\r
- * Used by ORM systems. \r
- * Changed to public in order to enable jcr persistence\r
+ * Used by ORM systems. Changed to public in order to enable jcr persistence\r
*/\r
public void setResultParts(SortedMap<TreeSPath, PartSubList> resultParts) {\r
this.resultParts = resultParts;\r
return super.hashCode();\r
}\r
\r
- public Map<String, String> getAttributes() {\r
+ public SortedMap<String, String> getAttributes() {\r
return attributes;\r
}\r
\r
- public void setAttributes(Map<String, String> attributes) {\r
+ public void setAttributes(SortedMap<String, String> attributes) {\r
this.attributes = attributes;\r
}\r
\r
this.strictChecks = strictChecks;\r
}\r
\r
+ /**\r
+ * Whether information should be stored in thsi object or simply forwarded\r
+ * to teh listeners.\r
+ */\r
+ public void setCache(Boolean cache) {\r
+ this.cache = cache;\r
+ }\r
+\r
}\r