1 package org
.argeo
.slc
.core
.test
.tree
;
3 import org
.apache
.commons
.logging
.Log
;
4 import org
.apache
.commons
.logging
.LogFactory
;
6 import org
.argeo
.slc
.dao
.test
.TestResultDao
;
8 public class TreeTestResultPersister
extends AsynchronousTreeTestResultListener
{
9 private static Log log
= LogFactory
.getLog(TreeTestResultPersister
.class);
11 private TestResultDao testResultDao
;
14 protected void resultPartAdded(PartStruct partStruct
) {
16 TreeTestResult persistedResult
= (TreeTestResult
) testResultDao
17 .getTestResult(partStruct
.resultId
);
18 if (persistedResult
== null) {
19 persistedResult
= new TreeTestResult();
20 persistedResult
.setNumericResultId(partStruct
.resultId
);
21 PartSubList subList
= new PartSubList();
22 subList
.getParts().add(partStruct
.part
);
23 persistedResult
.getResultParts().put(partStruct
.path
, subList
);
25 testResultDao
.create(persistedResult
);
27 PartSubList subList
= persistedResult
.getResultParts().get(
29 if (subList
== null) {
30 subList
= new PartSubList();
31 persistedResult
.getResultParts().put(partStruct
.path
,
34 persistedResult
.getResultParts().get(partStruct
.path
)
35 .getParts().add(partStruct
.part
);
37 if (log
.isTraceEnabled()) {
38 log
.trace("ResultId:" + persistedResult
.getTestResultId());
39 log
.trace("ResultParts size:"
40 + persistedResult
.getResultParts().size());
41 log
.trace("Sublist size:" + subList
.getParts().size());
42 log
.trace("Part: " + partStruct
.part
);
44 testResultDao
.update(persistedResult
);
46 } catch (Exception e
) {
47 log
.error("Could not persist part for result #"
48 + partStruct
.resultId
, e
);
52 public void setTestResultDao(TestResultDao testResultDao
) {
53 this.testResultDao
= testResultDao
;