@Override public void cancel(CoreSession session, DocumentRouteElement element) { List<DocumentRouteElement> children = getChildrenElement(session, element); for (DocumentRouteElement child : children) { child.cancel(session); } element.setCanceled(session); } }
@Override public void cancel(CoreSession session, DocumentRouteElement element) { if (element.isCanceled()) { return; } if (element.isReady() || element.isDone()) { element.setCanceled(session); } else if (element.isRunning()) { try { undo(session, element); } finally { element.setCanceled(session); } } else { throw new RuntimeException("Not allowed to cancel an element neither in ready, done or running state."); } } }