1 package org.collectionspace.services.listener.botgarden;
3 import org.apache.commons.logging.Log;
4 import org.apache.commons.logging.LogFactory;
6 import org.collectionspace.services.client.workflow.WorkflowClient;
7 import org.collectionspace.services.movement.nuxeo.MovementBotGardenConstants;
8 import org.collectionspace.services.movement.nuxeo.MovementConstants;
9 import org.collectionspace.services.nuxeo.listener.AbstractCSEventSyncListenerImpl;
11 import org.nuxeo.ecm.core.api.CoreSession;
12 import org.nuxeo.ecm.core.api.DocumentModel;
13 import org.nuxeo.ecm.core.event.Event;
14 import org.nuxeo.ecm.core.event.EventContext;
15 import org.nuxeo.ecm.core.event.impl.DocumentEventContext;
17 public class DeleteDeadLocationListener extends AbstractCSEventSyncListenerImpl {
18 static final Log logger = LogFactory.getLog(DeleteDeadLocationListener.class);
21 public boolean shouldHandleEvent(Event event) {
22 EventContext ec = event.getContext();
24 if (ec instanceof DocumentEventContext) {
25 DocumentEventContext context = (DocumentEventContext) ec;
26 DocumentModel doc = context.getSourceDocument();
28 if (doc.getType().startsWith(MovementConstants.NUXEO_DOCTYPE) &&
31 !doc.getCurrentLifeCycleState().equals(WorkflowClient.WORKFLOWSTATE_DELETED)) {
40 * Delete dead locations.
43 public void handleCSEvent(Event event) {
44 EventContext ec = event.getContext();
45 DocumentEventContext context = (DocumentEventContext) ec;
46 DocumentModel doc = context.getSourceDocument();
48 String actionCode = (String) doc.getProperty(MovementBotGardenConstants.ACTION_CODE_SCHEMA_NAME,
49 MovementBotGardenConstants.ACTION_CODE_FIELD_NAME);
51 logger.debug("actionCode=" + actionCode);
53 if (actionCode != null && actionCode.equals(MovementBotGardenConstants.DEAD_ACTION_CODE)) {
54 CoreSession session = context.getCoreSession();
56 if (session.getAllowedStateTransitions(doc.getRef()).contains(WorkflowClient.WORKFLOWTRANSITION_DELETE)) {
57 session.followTransition(doc.getRef(), WorkflowClient.WORKFLOWTRANSITION_DELETE);
63 public Log getLogger() {