+package org.argeo.slc.services;
+
+import org.argeo.slc.SlcException;
+import org.argeo.slc.msg.MsgHandler;
+import org.argeo.slc.msg.process.SlcExecutionStatusRequest;
+import org.argeo.slc.msg.test.tree.CloseTreeTestResultRequest;
+import org.argeo.slc.msg.test.tree.CreateTreeTestResultRequest;
+import org.argeo.slc.msg.test.tree.ResultPartRequest;
+import org.argeo.slc.process.SlcExecution;
+import org.argeo.slc.services.process.SlcExecutionService;
+import org.argeo.slc.services.test.TestManagerService;
+
+public class ServiceMsgHandler implements MsgHandler {
+ private TestManagerService testManagerService;
+ private SlcExecutionService slcExecutionService;
+
+ public Object handleMsg(Object msg) {
+ if (msg instanceof SlcExecution)
+ slcExecutionService.newExecution((SlcExecution) msg);
+ else if (msg instanceof SlcExecutionStatusRequest)
+ slcExecutionService.updateStatus((SlcExecutionStatusRequest) msg);
+ else if (msg instanceof CreateTreeTestResultRequest)
+ testManagerService
+ .createTreeTestResult((CreateTreeTestResultRequest) msg);
+ else if (msg instanceof ResultPartRequest)
+ testManagerService.addResultPart((ResultPartRequest) msg);
+ else if (msg instanceof CloseTreeTestResultRequest)
+ testManagerService
+ .closeTreeTestResult((CloseTreeTestResultRequest) msg);
+ else
+ throw new SlcException("Unrecognized message type " + msg);
+ return null;
+ }
+
+ public void setTestManagerService(TestManagerService testManagerService) {
+ this.testManagerService = testManagerService;
+ }
+
+ public void setSlcExecutionService(SlcExecutionService slcExecutionService) {
+ this.slcExecutionService = slcExecutionService;
+ }
+
+}