/** * Returns all {@link PlanItem}s that are referenced by the onParts of the exit criteria of this {@link PlanItem}. */ public static List<PlanItem> getExitDependencies(PlanItem planItem) { return getSourcePlanItems(planItem.getExitCriteria()); }
public static void writeCriteriaElements(PlanItem planItem, XMLStreamWriter xtw) throws Exception { writeEntryCriteriaElements(planItem.getEntryCriteria(), xtw); writeExitCriteriaElements(planItem.getExitCriteria(), xtw); }
processCriteria(planItem.getExitCriteria(), "ExitCriterion", model, elementArray);
/** * Deletes any part instance of a sentry that was satisfied before. */ protected void deleteSentryPartInstances() { SentryPartInstanceEntityManager sentryPartInstanceEntityManager = CommandContextUtil.getSentryPartInstanceEntityManager(commandContext); if (planItemInstanceEntity.getPlanItem() != null && (!planItemInstanceEntity.getPlanItem().getEntryCriteria().isEmpty() || !planItemInstanceEntity.getPlanItem().getExitCriteria().isEmpty())) { if (planItemInstanceEntity.getSatisfiedSentryPartInstances() != null) { for (SentryPartInstanceEntity sentryPartInstanceEntity : planItemInstanceEntity.getSatisfiedSentryPartInstances()) { sentryPartInstanceEntityManager.delete(sentryPartInstanceEntity); } } } }
protected void processElements(List<PlanItem> planItemList, CmmnModel model, ArrayNode elementArray, ArrayNode flowArray, GraphicInfo diagramInfo) { for (PlanItem planItem : planItemList) { ObjectNode elementNode = objectMapper.createObjectNode(); elementNode.put("id", planItem.getId()); elementNode.put("name", planItem.getName()); GraphicInfo graphicInfo = model.getGraphicInfo(planItem.getId()); if (graphicInfo != null) { fillGraphicInfo(elementNode, graphicInfo, true); fillDiagramInfo(graphicInfo, diagramInfo); } PlanItemDefinition planItemDefinition = planItem.getPlanItemDefinition(); String className = planItemDefinition.getClass().getSimpleName(); elementNode.put("type", className); if (planItemDefinition instanceof ServiceTask) { ServiceTask serviceTask = (ServiceTask) planItemDefinition; if (HttpServiceTask.HTTP_TASK.equals(serviceTask.getType())) { elementNode.put("taskType", "http"); } } elementArray.add(elementNode); processCriteria(planItem.getEntryCriteria(), "EntryCriterion", model, elementArray); processCriteria(planItem.getExitCriteria(), "ExitCriterion", model, elementArray); if (planItemDefinition instanceof Stage) { Stage stage = (Stage) planItemDefinition; processElements(stage.getPlanItems(), model, elementArray, flowArray, diagramInfo); } } }
protected static void writePlanItem(PlanItem planItem, CmmnModel model, XMLStreamWriter xtw) throws Exception { createCmmnShape(model, planItem.getId(), xtw); for (Criterion criterion : planItem.getEntryCriteria()) { createCmmnShape(model, criterion.getId(), xtw); } for (Criterion criterion : planItem.getExitCriteria()) { createCmmnShape(model, criterion.getId(), xtw); } }
if (!planItem.getExitCriteria().isEmpty()) { boolean exitCriteriaAllowed = true; if (planItemDefinition instanceof Task) { } else { LOGGER.warn("Ignoring exit criteria on plan item {}", planItem.getId()); planItem.getExitCriteria().clear();