private SGatewayDefinition getGateway(STransitionDefinition gatewaysTransition, SProcessDefinition processDefinition) { return (SGatewayDefinition) processDefinition.getProcessContainer().getFlowNode(gatewaysTransition.getTarget()); }
private SGatewayDefinition getGateway(STransitionDefinition gatewaysTransition, SProcessDefinition processDefinition) { return (SGatewayDefinition) processDefinition.getProcessContainer().getFlowNode(gatewaysTransition.getTarget()); }
@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); }
@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); }
boolean transitionsContainsAToken(List<STransitionDefinition> transitions, SFlowNodeDefinition gatewayDefinition, long processInstanceId, SFlowElementContainerDefinition processContainer) throws SBonitaReadException { List<SFlowNodeDefinition> sourceElements = new ArrayList<SFlowNodeDefinition>(); List<SFlowNodeDefinition> targetElements = new ArrayList<SFlowNodeDefinition>(); logger.log(TAG, TechnicalLogSeverity.DEBUG, "Check if there is a token on "+transitions); for (STransitionDefinition sTransitionDefinition : transitions) { SFlowNodeDefinition source = processContainer.getFlowNode(sTransitionDefinition.getSource()); if (!source.equals(gatewayDefinition) && !sourceElements.contains(source)) { sourceElements.add(source); } SFlowNodeDefinition target = processContainer.getFlowNode(sTransitionDefinition.getTarget()); if (!target.equals(gatewayDefinition) && !targetElements.contains(target)) { targetElements.add(target); } } List<SFlowNodeDefinition> sourceAndTarget = extractElementThatAreSourceAndTarget(sourceElements, targetElements); if (containsToken(processInstanceId, sourceAndTarget, null)) return true; if (containsToken(processInstanceId, sourceElements, true)) return true; if (containsToken(processInstanceId, targetElements, false)) return true; logger.log(TAG, TechnicalLogSeverity.DEBUG, "No token to wait, gateway will fire"); return false; }
boolean transitionsContainsAToken(List<STransitionDefinition> transitions, SFlowNodeDefinition gatewayDefinition, long processInstanceId, SFlowElementContainerDefinition processContainer) throws SBonitaReadException { List<SFlowNodeDefinition> sourceElements = new ArrayList<SFlowNodeDefinition>(); List<SFlowNodeDefinition> targetElements = new ArrayList<SFlowNodeDefinition>(); logger.log(TAG, TechnicalLogSeverity.DEBUG, "Check if there is a token on "+transitions); for (STransitionDefinition sTransitionDefinition : transitions) { SFlowNodeDefinition source = processContainer.getFlowNode(sTransitionDefinition.getSource()); if (!source.equals(gatewayDefinition) && !sourceElements.contains(source)) { sourceElements.add(source); } SFlowNodeDefinition target = processContainer.getFlowNode(sTransitionDefinition.getTarget()); if (!target.equals(gatewayDefinition) && !targetElements.contains(target)) { targetElements.add(target); } } List<SFlowNodeDefinition> sourceAndTarget = extractElementThatAreSourceAndTarget(sourceElements, targetElements); if (containsToken(processInstanceId, sourceAndTarget, null)) return true; if (containsToken(processInstanceId, sourceElements, true)) return true; if (containsToken(processInstanceId, targetElements, false)) return true; logger.log(TAG, TechnicalLogSeverity.DEBUG, "No token to wait, gateway will fire"); return false; }