+ SlcExecution slcExecutionPersisted = slcExecutionDao.getSlcExecution(slcExecutionMsg.getUuid());
+ if (slcExecutionPersisted == null) {
+ if (log.isTraceEnabled())
+ log.trace("Creating SLC execution #"
+ + slcExecutionMsg.getUuid());
+
+ slcExecutionDao.create(slcExecutionMsg);
+ } else {
+ if (log.isTraceEnabled())
+ log.trace("Updating SLC execution #"
+ + slcExecutionMsg.getUuid());
+
+ slcExecutionDao.merge(slcExecutionMsg);
+ }
+ return null;
+
+ } else if (requestObject instanceof SlcExecutionStatusRequest) {
+ SlcExecutionStatusRequest msg = (SlcExecutionStatusRequest) requestObject;
+ SlcExecution slcExecution = slcExecutionDao.getSlcExecution(msg
+ .getSlcExecutionUuid());
+ if (slcExecution == null)
+ throw new SlcException("Could not find SLC execution #"
+ + msg.getSlcExecutionUuid());
+
+ slcExecution.setStatus(msg.getNewStatus());
+
+ if (log.isTraceEnabled())
+ log.trace("Updating status for SLC execution #"
+ + slcExecution.getUuid());
+
+ slcExecutionDao.update(slcExecution);
+ return null;
+ } else {
+ throw new SlcException("Unrecognized request format: "
+ + requestObject.getClass());
+ }
+ }