1 package org
.argeo
.slc
.services
.impl
;
3 import org
.apache
.commons
.logging
.Log
;
4 import org
.apache
.commons
.logging
.LogFactory
;
5 import org
.argeo
.slc
.SlcException
;
6 import org
.argeo
.slc
.dao
.process
.SlcExecutionDao
;
7 import org
.argeo
.slc
.msg
.process
.SlcExecutionStatusRequest
;
8 import org
.argeo
.slc
.msg
.process
.SlcExecutionStepsRequest
;
9 import org
.argeo
.slc
.process
.SlcExecution
;
10 import org
.argeo
.slc
.process
.SlcExecutionStep
;
11 import org
.argeo
.slc
.services
.SlcExecutionService
;
13 public class SlcExecutionServiceImpl
implements SlcExecutionService
{
14 private final Log log
= LogFactory
.getLog(getClass());
16 private final SlcExecutionDao slcExecutionDao
;
18 public SlcExecutionServiceImpl(SlcExecutionDao slcExecutionDao
) {
19 this.slcExecutionDao
= slcExecutionDao
;
22 public void newExecution(SlcExecution slcExecutionMsg
) {
23 SlcExecution slcExecutionPersisted
= slcExecutionDao
24 .getSlcExecution(slcExecutionMsg
.getUuid());
25 if (slcExecutionPersisted
== null) {
26 if (log
.isTraceEnabled())
27 log
.trace("Creating SLC execution #"
28 + slcExecutionMsg
.getUuid());
30 slcExecutionDao
.create(slcExecutionMsg
);
32 throw new SlcException(
33 "There is already an SlcExecution registered with id "
34 + slcExecutionMsg
.getUuid());
35 // if (log.isTraceEnabled())
36 // log.trace("Updating SLC execution #"
37 // + slcExecutionMsg.getUuid());
39 // slcExecutionDao.merge(slcExecutionMsg);
43 public void updateStatus(SlcExecutionStatusRequest msg
) {
44 SlcExecution slcExecution
= slcExecutionDao
.getSlcExecution(msg
45 .getSlcExecutionUuid());
46 if (slcExecution
== null)
47 throw new SlcException("Could not find SLC execution #"
48 + msg
.getSlcExecutionUuid());
50 slcExecution
.setStatus(msg
.getNewStatus());
52 if (msg
.getNewStatus().equals(SlcExecution
.STATUS_FINISHED
))
53 slcExecution
.getSteps().add(
54 new SlcExecutionStep(SlcExecutionStep
.TYPE_END
,
55 "Process finished."));
57 if (log
.isTraceEnabled())
58 log
.trace("Updating status for SLC execution #"
59 + slcExecution
.getUuid() + " to status "
60 + msg
.getNewStatus());
62 slcExecutionDao
.update(slcExecution
);
65 public void addSteps(SlcExecutionStepsRequest msg
) {
66 slcExecutionDao
.addSteps(msg
.getSlcExecutionUuid(), msg
.getSteps());