/** * Assumes that an activity has at most one declaration of a certain eventType. */ public static EventSubscriptionJobDeclaration findDeclarationForSubscription(EventSubscriptionEntity eventSubscription) { List<EventSubscriptionJobDeclaration> declarations = getDeclarationsForActivity(eventSubscription.getActivity()); for (EventSubscriptionJobDeclaration declaration : declarations) { if (declaration.getEventType().equals(eventSubscription.getEventType())) { return declaration; } } return null; }
/** * Assumes that an activity has at most one declaration of a certain eventType. */ public static EventSubscriptionJobDeclaration findDeclarationForSubscription(EventSubscriptionEntity eventSubscription) { List<EventSubscriptionJobDeclaration> declarations = getDeclarationsForActivity(eventSubscription.getActivity()); for (EventSubscriptionJobDeclaration declaration : declarations) { if (declaration.getEventType().equals(eventSubscription.getEventType())) { return declaration; } } return null; }
@Override public void handleEvent(EventSubscriptionEntity eventSubscription, Object payload, Object localPayload, String businessKey, CommandContext commandContext) { VariableEvent variableEvent; if (payload == null || payload instanceof VariableEvent) { variableEvent = (VariableEvent) payload; } else { throw new ProcessEngineException("Payload have to be " + VariableEvent.class.getName() + ", to evaluate condition."); } ActivityImpl activity = eventSubscription.getActivity(); ActivityBehavior activityBehavior = activity.getActivityBehavior(); if (activityBehavior instanceof ConditionalEventBehavior) { ConditionalEventBehavior conditionalBehavior = (ConditionalEventBehavior) activityBehavior; conditionalBehavior.leaveOnSatisfiedCondition(eventSubscription, variableEvent); } else { throw new ProcessEngineException("Conditional Event has not correct behavior: " + activityBehavior); } }
@Override public void handleEvent(EventSubscriptionEntity eventSubscription, Object payload, Object localPayload, String businessKey, CommandContext commandContext) { VariableEvent variableEvent; if (payload == null || payload instanceof VariableEvent) { variableEvent = (VariableEvent) payload; } else { throw new ProcessEngineException("Payload have to be " + VariableEvent.class.getName() + ", to evaluate condition."); } ActivityImpl activity = eventSubscription.getActivity(); ActivityBehavior activityBehavior = activity.getActivityBehavior(); if (activityBehavior instanceof ConditionalEventBehavior) { ConditionalEventBehavior conditionalBehavior = (ConditionalEventBehavior) activityBehavior; conditionalBehavior.leaveOnSatisfiedCondition(eventSubscription, variableEvent); } else { throw new ProcessEngineException("Conditional Event has not correct behavior: " + activityBehavior); } }
protected List<ConditionHandlerResult> evaluateConditionStartByEventSubscription(CommandContext commandContext, ConditionSet conditionSet) { List<EventSubscriptionEntity> subscriptions = findConditionalStartEventSubscriptions(commandContext, conditionSet); if (subscriptions.isEmpty()) { throw LOG.exceptionWhenEvaluatingConditionalStartEvent(); } List<ConditionHandlerResult> results = new ArrayList<ConditionHandlerResult>(); for (EventSubscriptionEntity subscription : subscriptions) { ProcessDefinitionEntity processDefinition = subscription.getProcessDefinition(); if (!processDefinition.isSuspended()) { ActivityImpl activity = subscription.getActivity(); if (evaluateCondition(conditionSet, activity)) { results.add(new ConditionHandlerResult(processDefinition, activity)); } } } return results; }
protected List<ConditionHandlerResult> evaluateConditionStartByEventSubscription(CommandContext commandContext, ConditionSet conditionSet) { List<EventSubscriptionEntity> subscriptions = findConditionalStartEventSubscriptions(commandContext, conditionSet); if (subscriptions.isEmpty()) { throw LOG.exceptionWhenEvaluatingConditionalStartEvent(); } List<ConditionHandlerResult> results = new ArrayList<ConditionHandlerResult>(); for (EventSubscriptionEntity subscription : subscriptions) { ProcessDefinitionEntity processDefinition = subscription.getProcessDefinition(); if (!processDefinition.isSuspended()) { ActivityImpl activity = subscription.getActivity(); if (evaluateCondition(conditionSet, activity)) { results.add(new ConditionHandlerResult(processDefinition, activity)); } } } return results; }
@Override public void leaveOnSatisfiedCondition(final EventSubscriptionEntity eventSubscription, final VariableEvent variableEvent) { final PvmExecutionImpl execution = eventSubscription.getExecution(); if (execution != null && !execution.isEnded() && execution.isScope() && conditionalEvent.tryEvaluate(variableEvent, execution)) { execution.executeEventHandlerActivity(eventSubscription.getActivity()); } } }
@Override public void leaveOnSatisfiedCondition(final EventSubscriptionEntity eventSubscription, final VariableEvent variableEvent) { final PvmExecutionImpl execution = eventSubscription.getExecution(); if (execution != null && !execution.isEnded() && execution.isScope() && conditionalEvent.tryEvaluate(variableEvent, execution)) { execution.executeEventHandlerActivity(eventSubscription.getActivity()); } } }
@Override public void leaveOnSatisfiedCondition(final EventSubscriptionEntity eventSubscription, final VariableEvent variableEvent) { PvmExecutionImpl execution = eventSubscription.getExecution(); if (execution != null && !execution.isEnded() && execution.isScope() && conditionalEvent.tryEvaluate(variableEvent, execution)) { ActivityImpl activity = eventSubscription.getActivity(); activity = (ActivityImpl) activity.getFlowScope(); execution.executeEventHandlerActivity(activity); } }
@Override public void leaveOnSatisfiedCondition(final EventSubscriptionEntity eventSubscription, final VariableEvent variableEvent) { PvmExecutionImpl execution = eventSubscription.getExecution(); if (execution != null && !execution.isEnded() && execution.isScope() && conditionalEvent.tryEvaluate(variableEvent, execution)) { ActivityImpl activity = eventSubscription.getActivity(); activity = (ActivityImpl) activity.getFlowScope(); execution.executeEventHandlerActivity(activity); } }
@Override public void leaveOnSatisfiedCondition(final EventSubscriptionEntity eventSubscription, final VariableEvent variableEvent) { PvmExecutionImpl execution = eventSubscription.getExecution(); if (execution != null && !execution.isEnded() && variableEvent != null && conditionalEvent.tryEvaluate(variableEvent, execution) && execution.isActive() && execution.isScope()) { if (isAfterEventBasedGateway) { final ActivityImpl activity = eventSubscription.getActivity(); execution.executeEventHandlerActivity(activity); } else { leave(execution); } } } }
@Override public void leaveOnSatisfiedCondition(final EventSubscriptionEntity eventSubscription, final VariableEvent variableEvent) { PvmExecutionImpl execution = eventSubscription.getExecution(); if (execution != null && !execution.isEnded() && variableEvent != null && conditionalEvent.tryEvaluate(variableEvent, execution) && execution.isActive() && execution.isScope()) { if (isAfterEventBasedGateway) { final ActivityImpl activity = eventSubscription.getActivity(); execution.executeEventHandlerActivity(activity); } else { leave(execution); } } } }
public void handleIntermediateEvent(EventSubscriptionEntity eventSubscription, Object payload, Object localPayload, CommandContext commandContext) { PvmExecutionImpl execution = eventSubscription.getExecution(); ActivityImpl activity = eventSubscription.getActivity(); ensureNotNull("Error while sending signal for event subscription '" + eventSubscription.getId() + "': " + "no activity associated with event subscription", "activity", activity); if (payload instanceof Map) { execution.setVariables((Map<String, Object>)payload); } if (localPayload instanceof Map) { execution.setVariablesLocal((Map<String, Object>) localPayload); } if(activity.equals(execution.getActivity())) { execution.signal("signal", null); } else { // hack around the fact that the start event is referenced by event subscriptions for event subprocesses // and not the subprocess itself if (activity.getActivityBehavior() instanceof EventSubProcessStartEventActivityBehavior) { activity = (ActivityImpl) activity.getFlowScope(); } execution.executeEventHandlerActivity(activity); } }
public void handleIntermediateEvent(EventSubscriptionEntity eventSubscription, Object payload, Object localPayload, CommandContext commandContext) { PvmExecutionImpl execution = eventSubscription.getExecution(); ActivityImpl activity = eventSubscription.getActivity(); ensureNotNull("Error while sending signal for event subscription '" + eventSubscription.getId() + "': " + "no activity associated with event subscription", "activity", activity); if (payload instanceof Map) { execution.setVariables((Map<String, Object>)payload); } if (localPayload instanceof Map) { execution.setVariablesLocal((Map<String, Object>) localPayload); } if(activity.equals(execution.getActivity())) { execution.signal("signal", null); } else { // hack around the fact that the start event is referenced by event subscriptions for event subprocesses // and not the subprocess itself if (activity.getActivityBehavior() instanceof EventSubProcessStartEventActivityBehavior) { activity = (ActivityImpl) activity.getFlowScope(); } execution.executeEventHandlerActivity(activity); } }
eventScopeExecution, EventType.COMPENSATE, eventSubscriptionEntity.getActivity()); newSubscription.setConfiguration(eventSubscriptionEntity.getConfiguration());
eventScopeExecution, EventType.COMPENSATE, eventSubscriptionEntity.getActivity()); newSubscription.setConfiguration(eventSubscriptionEntity.getConfiguration());
ActivityImpl compensationHandler = eventSubscription.getActivity();
ActivityImpl compensationHandler = eventSubscription.getActivity();
/** * Assumes that an activity has at most one declaration of a certain eventType. */ public static EventSubscriptionJobDeclaration findDeclarationForSubscription(EventSubscriptionEntity eventSubscription) { List<EventSubscriptionJobDeclaration> declarations = getDeclarationsForActivity(eventSubscription.getActivity()); for (EventSubscriptionJobDeclaration declaration : declarations) { if (declaration.getEventType().equals(eventSubscription.getEventType())) { return declaration; } } return null; }
@Override public void leaveOnSatisfiedCondition(final EventSubscriptionEntity eventSubscription, final VariableEvent variableEvent) { PvmExecutionImpl execution = eventSubscription.getExecution(); if (execution != null && !execution.isEnded() && execution.isScope() && conditionalEvent.tryEvaluate(variableEvent, execution)) { ActivityImpl activity = eventSubscription.getActivity(); activity = (ActivityImpl) activity.getFlowScope(); execution.executeEventHandlerActivity(activity); } }