1 package org.collectionspace.services.listener.botgarden;
3 import org.apache.commons.logging.Log;
4 import org.apache.commons.logging.LogFactory;
5 import org.collectionspace.services.client.workflow.WorkflowClient;
6 import org.collectionspace.services.movement.nuxeo.MovementBotGardenConstants;
7 import org.collectionspace.services.movement.nuxeo.MovementConstants;
8 import org.collectionspace.services.nuxeo.listener.AbstractCSEventListenerImpl;
9 import org.nuxeo.ecm.core.api.CoreSession;
10 import org.nuxeo.ecm.core.api.DocumentModel;
11 import org.nuxeo.ecm.core.event.Event;
12 import org.nuxeo.ecm.core.event.EventContext;
13 import org.nuxeo.ecm.core.event.impl.DocumentEventContext;
15 public class DeleteDeadLocationListener extends AbstractCSEventListenerImpl {
16 final Log logger = LogFactory.getLog(DeleteDeadLocationListener.class);
19 * Delete dead locations.
21 public void handleEvent(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)) {
32 String actionCode = (String) doc.getProperty(MovementBotGardenConstants.ACTION_CODE_SCHEMA_NAME,
33 MovementBotGardenConstants.ACTION_CODE_FIELD_NAME);
35 logger.debug("actionCode=" + actionCode);
37 if (actionCode != null && actionCode.equals(MovementBotGardenConstants.DEAD_ACTION_CODE)) {
38 CoreSession session = context.getCoreSession();
40 if (session.getAllowedStateTransitions(doc.getRef()).contains(WorkflowClient.WORKFLOWTRANSITION_DELETE)) {
41 session.followTransition(doc.getRef(), WorkflowClient.WORKFLOWTRANSITION_DELETE);