]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc.server/src/main/java/org/argeo/slc/ws/test/tree/ResultPartRequestEp.java
Introduce close tree test result request
[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.tree.PartSubList;
10 import org.argeo.slc.core.test.tree.TreeTestResult;
11 import org.argeo.slc.dao.test.tree.TreeTestResultDao;
12 import org.argeo.slc.msg.test.tree.ResultPartRequest;
13
14 public class ResultPartRequestEp extends AbstractMarshallingPayloadEndpoint {
15
16 private Log log = LogFactory.getLog(getClass());
17
18 private final TreeTestResultDao treeTestResultDao;
19
20 public ResultPartRequestEp(TreeTestResultDao treeTestResultDao) {
21 this.treeTestResultDao = treeTestResultDao;
22 }
23
24 @Override
25 protected Object invokeInternal(Object requestObject) throws Exception {
26 ResultPartRequest msg = (ResultPartRequest) requestObject;
27 TreeTestResult treeTestResult = treeTestResultDao.getTestResult(msg
28 .getResultUuid());
29 if (treeTestResult == null) {
30 throw new SlcException("No result with id " + msg.getResultUuid());
31 }
32
33 PartSubList lst = treeTestResult.getResultParts().get(msg.getPath());
34 if (lst == null) {
35 lst = new PartSubList();
36 treeTestResult.getResultParts().put(msg.getPath(), lst);
37 }
38 lst.getParts().add(msg.getResultPart());
39 treeTestResult.getElements().putAll(msg.getRelatedElements());
40
41 treeTestResultDao.update(treeTestResult);
42
43 if (log.isDebugEnabled())
44 log.debug("Update result with id " + treeTestResult.getUuid());
45 return null;
46 }
47
48 }