public boolean sentryOnPartMatchesCurrentLifeCycleEvent(SentryOnPart sentryOnPart) { return planItemLifeCycleEvent.getPlanItem().getId().equals(sentryOnPart.getSourceRef()) && planItemLifeCycleEvent.getTransition().equals(sentryOnPart.getStandardEvent()); }
@Override protected CmmnElement convert(XMLStreamReader xtr, ConversionHelper conversionHelper) { SentryOnPart sentryOnPart = new SentryOnPart(); sentryOnPart.setName(xtr.getAttributeValue(null, CmmnXmlConstants.ATTRIBUTE_NAME)); sentryOnPart.setSourceRef(xtr.getAttributeValue(null, CmmnXmlConstants.ATTRIBUTE_SOURCE_REF)); conversionHelper.addSentryOnPartToCurrentSentry(sentryOnPart); return sentryOnPart; }
public static boolean criterionHasOnPartDependingOnPlanItem(Criterion criterion, PlanItem planItem, String event) { Sentry sentry = criterion.getSentry(); if (sentry != null) { for (SentryOnPart sentryOnPart : sentry.getOnParts()) { if (sentryOnPart.getSource().getId().equals(planItem.getId()) && sentryOnPart.getStandardEvent().equals(event)) { return true; } } } return false; }
xtw.writeAttribute(ATTRIBUTE_ID, sentryOnPart.getId()); xtw.writeAttribute(ATTRIBUTE_SOURCE_REF, sentryOnPart.getSourceRef()); xtw.writeCharacters(sentryOnPart.getStandardEvent()); xtw.writeEndElement();
Optional<PlanItem> planItem = conversionHelper.findPlanItem(sentryOnPart.getSourceRef()); if (planItem.isPresent()) { sentryOnPart.setSource(planItem.get()); if (sentry.getOnParts().size() > 0) { SentryOnPart sentryOnPart = sentry.getOnParts().get(0); if (planItemSourceRef.equals(sentryOnPart.getSourceRef())) { association.setTransitionEvent(sentryOnPart.getStandardEvent());
criterion.setEntryCriterion(true); SentryOnPart sentryOnPart = new SentryOnPart(); sentryOnPart.setSourceRef(startTriggerPlanItem.getId()); sentryOnPart.setSource(startTriggerPlanItem); sentryOnPart.setStandardEvent(timerEventListener.getTimerStartTriggerStandardEvent());
protected void processSentries(Stage planModelStage, PlanFragment planFragment) { for (Sentry sentry : planFragment.getSentries()) { for (SentryOnPart onPart : sentry.getOnParts()) { PlanItem planItem = planModelStage.findPlanItemInPlanFragmentOrDownwards(onPart.getSourceRef()); if (planItem != null) { onPart.setSource(planItem); } else { throw new FlowableException("Could not resolve on part source reference " + onPart.getSourceRef() + " of sentry " + sentry.getId()); } } } for (PlanItem planItem : planFragment.getPlanItems()) { if (planItem.getPlanItemDefinition() instanceof PlanFragment) { processSentries(planModelStage, (PlanFragment) planItem.getPlanItemDefinition()); } } }
if (!satisfiedSentryOnPartIds.contains(sentryOnPart.getId())) { if (planItemLifeCycleEvent != null && sentryOnPartMatchesCurrentLifeCycleEvent(sentryOnPart)) { createSentryPartInstanceEntity(entityWithSentryPartInstances, sentry, sentryOnPart, null); satisfiedSentryOnPartIds.add(sentryOnPart.getId());
protected static List<PlanItem> getSourcePlanItems(List<Criterion> criteria) { List<PlanItem> planItems = new ArrayList<>(); if (!criteria.isEmpty()) { for (Criterion entryCriterion : criteria) { Sentry sentry = entryCriterion.getSentry(); if (sentry.getOnParts() != null && !sentry.getOnParts().isEmpty()) { for (SentryOnPart sentryOnPart : sentry.getOnParts()) { planItems.add(sentryOnPart.getSource()); } } } } return planItems; }
@Override protected BaseElement convert(XMLStreamReader xtr, ConversionHelper conversionHelper) { String event = xtr.getText(); if (conversionHelper.getCurrentCmmnElement() instanceof TimerEventListener) { TimerEventListener timerEventListener = (TimerEventListener) conversionHelper.getCurrentCmmnElement(); timerEventListener.setTimerStartTriggerStandardEvent(event); } else { conversionHelper.getCurrentSentryOnPart().setStandardEvent(xtr.getText()); } return null; }
sentryPartInstanceEntity.setOnPartId(sentryOnPart.getId()); } else if (sentryIfPart != null) { sentryPartInstanceEntity.setIfPartId(sentryIfPart.getId());