private SFlowNodeDefinition getFlowNode(final SFlowNodeInstance flowNodeInstance, final SProcessDefinition processDefinition) { if (processDefinition == null) { return null; } return processDefinition.getProcessContainer().getFlowNode(flowNodeInstance.getFlowNodeDefinitionId()); }
@Override public boolean shouldExecuteState(final SProcessDefinition processDefinition, final SFlowNodeInstance flowNodeInstance) { final SActivityDefinition activityDef = (SActivityDefinition) processDefinition.getProcessContainer().getFlowNode( flowNodeInstance.getFlowNodeDefinitionId()); return !activityDef.getBoundaryEventDefinitions().isEmpty(); }
private boolean isEventWithTrigger(SFlowNodeInstance flowNodeInstance, SProcessDefinition processDefinition) { if (processDefinition != null) { SFlowNodeDefinition flowNodeDefinition = processDefinition.getProcessContainer().getFlowNode(flowNodeInstance.getFlowNodeDefinitionId()); return flowNodeDefinition instanceof SEventDefinition && !((SEventDefinition) flowNodeDefinition).getEventTriggers().isEmpty(); } return false; }
public List<SConnectorDefinition> getConnectorDefinitions(SProcessDefinition processDefinition, SFlowNodeInstance flowNodeInstance, ConnectorEvent connectorEvent) { final SFlowElementContainerDefinition processContainer = processDefinition.getProcessContainer(); final SFlowNodeDefinition flowNodeDefinition = processContainer.getFlowNode(flowNodeInstance.getFlowNodeDefinitionId()); if (flowNodeDefinition == null) { return Collections.emptyList(); } return flowNodeDefinition.getConnectors(connectorEvent); }
@Override public boolean shouldExecuteState(final SProcessDefinition processDefinition, final SFlowNodeInstance flowNodeInstance) { final SActivityDefinition activityDef = (SActivityDefinition) processDefinition.getProcessContainer().getFlowNode( flowNodeInstance.getFlowNodeDefinitionId()); return !activityDef.getBoundaryEventDefinitions().isEmpty(); }
protected List<STransitionDefinition> getTransitionDefinitions(final SGatewayInstance gatewayInstance, final SProcessDefinition processDefinition) { final SFlowElementContainerDefinition processContainer = processDefinition.getProcessContainer(); final SFlowNodeDefinition gatewayDefinition = processContainer.getFlowNode(gatewayInstance.getFlowNodeDefinitionId()); return gatewayDefinition.getIncomingTransitions(); }
public SFlowElementContainerDefinition getContainer() { if(subProcessDefinitionId == -1) { return definition.getProcessContainer(); } final SSubProcessDefinition subProcDef = (SSubProcessDefinition) definition.getProcessContainer().getFlowNode(subProcessDefinitionId); return subProcDef.getSubProcessContainer(); }
@Override public SFlowNodeDefinition getNextFlowNode(final SProcessDefinition definition, final String source) { final SFlowElementContainerDefinition processContainer = definition.getProcessContainer(); final STransitionDefinition sourceNode = processContainer.getTransition(source); final long targetId = sourceNode.getTarget(); return processContainer.getFlowNode(targetId); }
protected STransitionDefinition getDefaultTransition(final SProcessDefinition sDefinition, final SFlowNodeInstance flowNodeInstance) { final SFlowElementContainerDefinition processContainer = sDefinition.getProcessContainer(); final SFlowNodeDefinition flowNode = processContainer.getFlowNode(flowNodeInstance.getFlowNodeDefinitionId()); return flowNode.getDefaultTransition(); }
protected List<STransitionDefinition> getTransitionDefinitions(final SGatewayInstance gatewayInstance, final SProcessDefinition processDefinition) { final SFlowElementContainerDefinition processContainer = processDefinition.getProcessContainer(); final SFlowNodeDefinition gatewayDefinition = processContainer.getFlowNode(gatewayInstance.getFlowNodeDefinitionId()); return gatewayDefinition.getIncomingTransitions(); }
@Override public SFlowNodeDefinition getNextFlowNode(final SProcessDefinition definition, final String source) { final SFlowElementContainerDefinition processContainer = definition.getProcessContainer(); final STransitionDefinition sourceNode = processContainer.getTransition(source); final long targetId = sourceNode.getTarget(); return processContainer.getFlowNode(targetId); }
protected STransitionDefinition getDefaultTransition(final SProcessDefinition sDefinition, final SFlowNodeInstance flowNodeInstance) { final SFlowElementContainerDefinition processContainer = sDefinition.getProcessContainer(); final SFlowNodeDefinition flowNode = processContainer.getFlowNode(flowNodeInstance.getFlowNodeDefinitionId()); return flowNode.getDefaultTransition(); }
@Override public StateCode execute(final SProcessDefinition processDefinition, final SFlowNodeInstance instance) throws SActivityStateExecutionException { final SActivityDefinition activityDef = (SActivityDefinition) processDefinition.getProcessContainer().getFlowNode(instance.getFlowNodeDefinitionId()); if (!activityDef.getBoundaryEventDefinitions().isEmpty()) { final SActivityInstance activityInstance = (SActivityInstance) instance; stateBehaviors.interruptAttachedBoundaryEvent(processDefinition, activityInstance, getBoundaryCategoryState()); } return StateCode.DONE; }
@Override public StateCode execute(final SProcessDefinition processDefinition, final SFlowNodeInstance instance) throws SActivityStateExecutionException { final SActivityDefinition activityDef = (SActivityDefinition) processDefinition.getProcessContainer().getFlowNode(instance.getFlowNodeDefinitionId()); if (!activityDef.getBoundaryEventDefinitions().isEmpty()) { final SActivityInstance activityInstance = (SActivityInstance) instance; stateBehaviors.interruptAttachedBoundaryEvent(processDefinition, activityInstance, getBoundaryCategoryState()); } return StateCode.DONE; }
public void createAttachedBoundaryEvents(final SProcessDefinition processDefinition, final SActivityInstance activityInstance) throws SActivityStateExecutionException { final SActivityDefinition activityDefinition = (SActivityDefinition) processDefinition.getProcessContainer().getFlowNode( activityInstance.getFlowNodeDefinitionId()); if (mustAddBoundaryEvents(activityInstance, activityDefinition)) { createAttachedBoundaryEvents(processDefinition, activityInstance, activityDefinition); } }
@Override public void execute() throws SBonitaException { final SProcessDefinition processDefinition = definitionService.getProcessDefinition(userTaskInstance.getProcessDefinitionId()); final SUserTaskDefinition userTaskDefinition = (SUserTaskDefinition) processDefinition.getProcessContainer().getFlowNode( userTaskInstance.getFlowNodeDefinitionId()); contract = userTaskDefinition.getContract(); }
public boolean createDataInstances(final SProcessDefinition processDefinition, final SFlowNodeInstance flowNodeInstance) throws SActivityStateExecutionException { final SFlowElementContainerDefinition processContainer = processDefinition.getProcessContainer(); final SActivityDefinition activityDefinition = (SActivityDefinition) processContainer.getFlowNode(flowNodeInstance.getFlowNodeDefinitionId()); if (activityDefinition != null) {// can be null if the activity was added in runtime return createDataInstances(activityDefinition, flowNodeInstance, new SExpressionContext(flowNodeInstance.getId(), DataInstanceContainer.ACTIVITY_INSTANCE.name(), processDefinition.getId())); } return false; }
private boolean executePostThrowEventHandlers(final SProcessDefinition sProcessDefinition, final SProcessInstance sProcessInstance, final SFlowNodeInstance child) throws SBonitaException { boolean hasActionsToExecute = false; if (sProcessInstance.hasBeenInterruptedByEvent()) { final SFlowNodeInstance endEventInstance = activityInstanceService.getFlowNodeInstance(sProcessInstance.getInterruptingEventId()); final SEndEventDefinition endEventDefinition = (SEndEventDefinition) sProcessDefinition.getProcessContainer().getFlowNode( endEventInstance.getFlowNodeDefinitionId()); hasActionsToExecute = eventsHandler.handlePostThrowEvent(sProcessDefinition, endEventDefinition, (SThrowEventInstance) endEventInstance, child); flowNodeExecutor.archiveFlowNodeInstance(endEventInstance, true, sProcessDefinition.getId()); } return hasActionsToExecute; }
private void throwContractViolationExceptionIfContractIsInvalid(final Map<String, Serializable> inputs, final TenantServiceAccessor tenantAccessor, final SFlowNodeInstance flowNodeInstance) throws SBonitaReadException, SProcessDefinitionNotFoundException, SContractViolationException { final SProcessDefinition processDefinition = tenantAccessor.getProcessDefinitionService() .getProcessDefinition(flowNodeInstance.getProcessDefinitionId()); final SUserTaskDefinition userTaskDefinition = (SUserTaskDefinition) processDefinition.getProcessContainer().getFlowNode( flowNodeInstance.getFlowNodeDefinitionId()); final SContractDefinition contractDefinition = userTaskDefinition.getContract(); final ContractValidator validator = new ContractValidatorFactory().createContractValidator(tenantAccessor.getTechnicalLoggerService(), tenantAccessor.getExpressionService()); validator.validate(flowNodeInstance.getProcessDefinitionId(), contractDefinition, inputs); }
private void throwContractViolationExceptionIfContractIsInvalid(final Map<String, Serializable> inputs, final TenantServiceAccessor tenantAccessor, final SFlowNodeInstance flowNodeInstance) throws SBonitaReadException, SProcessDefinitionNotFoundException, SContractViolationException { final SProcessDefinition processDefinition = tenantAccessor.getProcessDefinitionService() .getProcessDefinition(flowNodeInstance.getProcessDefinitionId()); final SUserTaskDefinition userTaskDefinition = (SUserTaskDefinition) processDefinition.getProcessContainer().getFlowNode( flowNodeInstance.getFlowNodeDefinitionId()); final SContractDefinition contractDefinition = userTaskDefinition.getContract(); final ContractValidator validator = new ContractValidatorFactory().createContractValidator(tenantAccessor.getTechnicalLoggerService(), tenantAccessor.getExpressionService()); validator.validate(flowNodeInstance.getProcessDefinitionId(), contractDefinition, inputs); }