]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc.server/src/main/java/org/argeo/slc/ws/test/tree/ResultPartRequestEp.java
7e73ff8315016aa79eb02e3d263ea09b18a6c2fc
[gpl/argeo-slc.git] / org.argeo.slc.server / src / main / java / org / argeo / slc / ws / test / tree / ResultPartRequestEp.java
1 package org.argeo.slc.ws.test.tree;
2
3 import org.springframework.ws.server.endpoint.AbstractMarshallingPayloadEndpoint;
4
5 import org.apache.commons.logging.Log;
6 import org.apache.commons.logging.LogFactory;
7
8 import org.argeo.slc.core.SlcException;
9 import org.argeo.slc.core.test.TestRunDescriptor;
10 import org.argeo.slc.core.test.tree.PartSubList;
11 import org.argeo.slc.core.test.tree.TreeTestResult;
12 import org.argeo.slc.dao.test.TestRunDescriptorDao;
13 import org.argeo.slc.dao.test.tree.TreeTestResultDao;
14 import org.argeo.slc.msg.test.tree.ResultPartRequest;
15
16 public class ResultPartRequestEp extends AbstractMarshallingPayloadEndpoint {
17
18 private Log log = LogFactory.getLog(getClass());
19
20 private final TreeTestResultDao treeTestResultDao;
21 private final TestRunDescriptorDao testRunDescriptorDao;
22
23 public ResultPartRequestEp(TreeTestResultDao treeTestResultDao,
24 TestRunDescriptorDao testRunDescriptorDao) {
25 this.treeTestResultDao = treeTestResultDao;
26 this.testRunDescriptorDao = testRunDescriptorDao;
27 }
28
29 @Override
30 protected Object invokeInternal(Object requestObject) throws Exception {
31 ResultPartRequest msg = (ResultPartRequest) requestObject;
32
33 TestRunDescriptor testRunDescriptor = msg.getTestRunDescriptor();
34 if (testRunDescriptor != null) {
35 if (log.isDebugEnabled())
36 log.debug("Updating test run descriptor with id "
37 + testRunDescriptor.getTestRunUuid());
38
39 testRunDescriptorDao.saveOrUpdate(testRunDescriptor);
40 }
41
42 TreeTestResult treeTestResult = treeTestResultDao.getTestResult(msg
43 .getResultUuid());
44 if (treeTestResult == null) {
45 throw new SlcException("No result with id " + msg.getResultUuid());
46 }
47
48 PartSubList lst = treeTestResult.getResultParts().get(msg.getPath());
49 if (lst == null) {
50 lst = new PartSubList();
51 treeTestResult.getResultParts().put(msg.getPath(), lst);
52 }
53 lst.getParts().add(msg.getResultPart());
54 treeTestResult.getElements().putAll(msg.getRelatedElements());
55
56 if (log.isDebugEnabled())
57 log.debug("Updating result with id " + treeTestResult.getUuid());
58
59 treeTestResultDao.update(treeTestResult);
60
61 return null;
62 }
63
64 }