public void signalEvent(String type, Object event) { if ("signal".equals(type)) { if (event instanceof String) { for (Connection connection: getStateNode().getOutgoingConnections(NodeImpl.CONNECTION_DEFAULT_TYPE)) { boolean selected = false; Constraint constraint = getStateNode().getConstraint(connection); if (constraint == null) { if (((String) event).equals(connection.getTo().getName())) { triggerEvent(ExtendedNodeImpl.EVENT_NODE_EXIT); removeEventListeners(); ((org.jbpm.workflow.instance.NodeInstanceContainer) getNodeInstanceContainer()) .removeNodeInstance(this); triggerConnection(connection); return; } else if (getActivationEventType().equals(type)) { if (event instanceof MatchCreatedEvent) { activationCreated((MatchCreatedEvent) event);
public void internalTrigger(NodeInstance from, String type) { super.internalTrigger(from, type); if (getNodeInstanceContainer().getNodeInstance(getId()) == null) { return; StateNode stateNode = getStateNode(); Connection selected = null; int priority = Integer.MAX_VALUE; Constraint constraint = stateNode.getConstraint(connection); if (constraint != null && constraint.getPriority() < priority) { String rule = "RuleFlowStateNode-" + getProcessInstance().getProcessId() + "-" + getStateNode().getUniqueId() + "-" + connection.getTo().getId() + "-" + connection.getToType(); boolean isActive = ((InternalAgenda) getProcessInstance().getKnowledgeRuntime().getAgenda()) .isRuleActiveInRuleFlowGroup("DROOLS_SYSTEM", rule, getProcessInstance().getId()); if (isActive) { selected = connection; ((NodeInstanceContainer) getNodeInstanceContainer()).removeNodeInstance(this); triggerConnection(selected); } else { addTriggerListener(); addActivationListener();
public void activationCreated(MatchCreatedEvent event) { Connection selected = null; for (Connection connection: getNode().getOutgoingConnections(NodeImpl.CONNECTION_DEFAULT_TYPE)) { Constraint constraint = getStateNode().getConstraint(connection); if (constraint != null) { String constraintName = getActivationEventType() + "-" + connection.getTo().getId() + "-" + connection.getToType(); if (constraintName.equals(event.getMatch().getRule().getName()) && checkProcessInstance((Activation) event.getMatch())) { selected = connection; } } } if (selected != null) { removeEventListeners(); ((NodeInstanceContainer) getNodeInstanceContainer()).removeNodeInstance(this); triggerConnection(selected); } }
public void addEventListeners() { super.addEventListeners(); addTriggerListener(); addActivationListener(); }
private void addActivationListener() { getProcessInstance().addEventListener(getActivationEventType(), this, true); }
nodeInstance = new StateNodeInstance(); nbTimerInstances = stream.readInt(); if (nbTimerInstances > 0) {
assertEquals(1, nodeInstances.size()); StateNodeInstance stateInstance = (StateNodeInstance) nodeInstances.iterator().next(); assertEquals("StateA", stateInstance.getNodeName()); assertEquals(1, nodeInstances.size()); stateInstance = (StateNodeInstance) nodeInstances.iterator().next(); assertEquals("StateB", stateInstance.getNodeName()); assertEquals(1, nodeInstances.size()); stateInstance = (StateNodeInstance) nodeInstances.iterator().next(); assertEquals("StateA", stateInstance.getNodeName()); assertEquals(1, nodeInstances.size()); stateInstance = (StateNodeInstance) nodeInstances.iterator().next(); assertEquals("StateC", stateInstance.getNodeName()); assertEquals(1, nodeInstances.size()); stateInstance = (StateNodeInstance) nodeInstances.iterator().next(); assertEquals("StateC", stateInstance.getNodeName());
public String[] getEventTypes() { return new String[] { "signal", getActivationEventType() }; }
protected StateNode getStateNode() { return (StateNode) getNode(); }
public void removeEventListeners() { super.removeEventListeners(); getProcessInstance().removeEventListener("signal", this, false); getProcessInstance().removeEventListener(getActivationEventType(), this, true); }
public void addEventListeners() { super.addEventListeners(); addTriggerListener(); addActivationListener(); }
nodeInstance = new StateNodeInstance(); if ( _content.getState().getTimerInstanceIdCount() > 0 ) { List<Long> timerInstances = new ArrayList<Long>();
assertEquals(1, nodeInstances.size()); StateNodeInstance stateInstance = (StateNodeInstance) nodeInstances.iterator().next(); assertEquals("State", stateInstance.getNodeName()); assertEquals(0, list.size()); try {
public String[] getEventTypes() { return new String[] { "signal", getActivationEventType() }; }
protected StateNode getStateNode() { return (StateNode) getNode(); }
public void activationCreated(MatchCreatedEvent event) { Connection selected = null; for (Connection connection: getNode().getOutgoingConnections(NodeImpl.CONNECTION_DEFAULT_TYPE)) { Constraint constraint = getStateNode().getConstraint(connection); if (constraint != null) { String constraintName = getActivationEventType() + "-" + connection.getTo().getId() + "-" + connection.getToType(); if (constraintName.equals(event.getMatch().getRule().getName()) && checkProcessInstance((Activation) event.getMatch())) { selected = connection; } } } if (selected != null) { removeEventListeners(); ((NodeInstanceContainer) getNodeInstanceContainer()).removeNodeInstance(this); triggerConnection(selected); } }
public void signalEvent(String type, Object event) { if ("signal".equals(type)) { if (event instanceof String) { for (Connection connection: getStateNode().getOutgoingConnections(NodeImpl.CONNECTION_DEFAULT_TYPE)) { boolean selected = false; Constraint constraint = getStateNode().getConstraint(connection); if (constraint == null) { if (((String) event).equals(connection.getTo().getName())) { triggerEvent(ExtendedNodeImpl.EVENT_NODE_EXIT); removeEventListeners(); ((org.jbpm.workflow.instance.NodeInstanceContainer) getNodeInstanceContainer()) .removeNodeInstance(this); triggerConnection(connection); return; } else if (getActivationEventType().equals(type)) { if (event instanceof MatchCreatedEvent) { activationCreated((MatchCreatedEvent) event);
public void internalTrigger(NodeInstance from, String type) { super.internalTrigger(from, type); if (getNodeInstanceContainer().getNodeInstance(getId()) == null) { return; StateNode stateNode = getStateNode(); Connection selected = null; int priority = Integer.MAX_VALUE; Constraint constraint = stateNode.getConstraint(connection); if (constraint != null && constraint.getPriority() < priority) { String rule = "RuleFlowStateNode-" + getProcessInstance().getProcessId() + "-" + getStateNode().getUniqueId() + "-" + connection.getTo().getId() + "-" + connection.getToType(); boolean isActive = ((InternalAgenda) getProcessInstance().getKnowledgeRuntime().getAgenda()) .isRuleActiveInRuleFlowGroup("DROOLS_SYSTEM", rule, getProcessInstance().getId()); if (isActive) { selected = connection; ((NodeInstanceContainer) getNodeInstanceContainer()).removeNodeInstance(this); triggerConnection(selected); } else { addTriggerListener(); addActivationListener();
private void addActivationListener() { getProcessInstance().addEventListener(getActivationEventType(), this, true); }
nodeInstance = new StateNodeInstance(); nbTimerInstances = stream.readInt(); if (nbTimerInstances > 0) {