]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc/src/main/java/org/argeo/slc/core/test/tree/TreeTestResultPersister.java
Introduce complex tree test definition
[gpl/argeo-slc.git] / org.argeo.slc / src / main / java / org / argeo / slc / core / test / tree / TreeTestResultPersister.java
1 package org.argeo.slc.core.test.tree;
2
3 import org.apache.commons.logging.Log;
4 import org.apache.commons.logging.LogFactory;
5
6 import org.argeo.slc.dao.test.TestResultDao;
7
8 public class TreeTestResultPersister extends AsynchronousTreeTestResultListener {
9 private static Log log = LogFactory.getLog(TreeTestResultPersister.class);
10
11 private TestResultDao testResultDao;
12
13 @Override
14 protected void resultPartAdded(PartStruct partStruct) {
15 try {
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);
24
25 testResultDao.create(persistedResult);
26 } else {
27 PartSubList subList = persistedResult.getResultParts().get(
28 partStruct.path);
29 if (subList == null) {
30 subList = new PartSubList();
31 persistedResult.getResultParts().put(partStruct.path,
32 subList);
33 }
34 persistedResult.getResultParts().get(partStruct.path)
35 .getParts().add(partStruct.part);
36
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);
43 }
44 testResultDao.update(persistedResult);
45 }
46 } catch (Exception e) {
47 log.error("Could not persist part for result #"
48 + partStruct.resultId, e);
49 }
50 }
51
52 public void setTestResultDao(TestResultDao testResultDao) {
53 this.testResultDao = testResultDao;
54 }
55
56 }