org.kie.api.definition.process.Node.getOutgoingConnections()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(10.0k)|赞(0)|评价(0)|浏览(84)

本文整理了Java中org.kie.api.definition.process.Node.getOutgoingConnections()方法的一些代码示例,展示了Node.getOutgoingConnections()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Node.getOutgoingConnections()方法的具体详情如下:
包路径:org.kie.api.definition.process.Node
类名称:Node
方法名:getOutgoingConnections

Node.getOutgoingConnections介绍

[英]The outgoing connections for this Node. A Node could have multiple exit-points. This map contains the list of outgoing connections for each exit-point.
[中]此节点的传出连接。一个节点可以有多个出口点。此映射包含每个出口点的传出连接列表。

代码示例

代码示例来源:origin: kiegroup/jbpm

private void processNode(final Node node,
             final Map<Node, Boolean> nodes) {
  if (!nodes.containsKey(node) && !((node instanceof CompositeNodeEnd) || (node instanceof ForEachSplitNode) || (node instanceof ForEachJoinNode))) {
    throw new IllegalStateException("A process node is connected with a node that does not belong to the process: " + node.getName());
  }
  final Boolean prevValue = (Boolean) nodes.put(node,
                         Boolean.TRUE);
  if (prevValue == Boolean.FALSE || prevValue == null) {
    for (final Iterator<List<Connection>> it = node.getOutgoingConnections().values().iterator(); it.hasNext(); ) {
      final List<Connection> list = it.next();
      for (final Iterator<Connection> it2 = list.iterator(); it2.hasNext(); ) {
        processNode(it2.next().getTo(),
              nodes);
      }
    }
  }
}

代码示例来源:origin: kiegroup/jbpm

private boolean processConnectionInfo(ConnectionInfo connectionInfo, Node[] nodes) {
  for (Node node: nodes) {
    for (List<Connection> connections: node.getOutgoingConnections().values()) {
      for (Connection connection: connections) {
        String id = (String) connection.getMetaData().get("UniqueId");
        if (id != null && id.equals(connectionInfo.getElementRef())) {
          ((ConnectionImpl) connection).setMetaData(
            "bendpoints", connectionInfo.getBendpoints());
          return true;
        }
      }
    }
    if (node instanceof NodeContainer) {
      boolean found = processConnectionInfo(connectionInfo, ((NodeContainer) node).getNodes());
      if (found) {
        return true;
      }
    }
  }
  return false;
}

代码示例来源:origin: kiegroup/jbpm

protected boolean checkNodes(Node currentNode, final Node lookFor, Set<Long> vistedNodes) {        
  List<Connection> connections = currentNode.getOutgoingConnections(org.jbpm.workflow.core.Node.CONNECTION_DEFAULT_TYPE);
  for (Connection conn : connections) {
    Node nextNode = conn.getTo();
    if (nextNode == null) {
      continue;
    } else if (vistedNodes.contains(nextNode.getId())) {
      continue;
    } else {
      vistedNodes.add(nextNode.getId());
      if (nextNode.getId() == lookFor.getId()) {                    
        return true;
      } 
              
      boolean nestedCheck = checkNodes(nextNode, lookFor, vistedNodes);
      if (nestedCheck) {
        return true;
      }
      
    }
  }
  
  return false;
}

代码示例来源:origin: kiegroup/jbpm

public void assertNumOfOutgoingConnections(ProcessInstance process,
    String nodeName, int num) {
  assertNodeExists(process, nodeName);
  WorkflowProcessInstanceImpl instance = (WorkflowProcessInstanceImpl) process;
  for (Node node : instance.getNodeContainer().getNodes()) {
    if (node.getName().equals(nodeName)) {
      if (node.getOutgoingConnections().size() != num) {
        fail("Expected outgoing connections: " + num + " - found "
            + node.getOutgoingConnections().size());
      } else {
        break;
      }
    }
  }
}

代码示例来源:origin: kiegroup/jbpm

public void validateRemoveOutgoingConnection(final String type, final Connection connection) {
  CompositeNode.NodeAndType nodeAndType = internalGetLinkedOutgoingNode(type);
  if (nodeAndType != null) {
    for (Connection outConnection: nodeAndType.getNode().getOutgoingConnections(nodeAndType.getType())) {
      if (((CompositeNodeEnd) outConnection.getTo()).getOutNodeId() == connection.getTo().getId()) {
        ((NodeImpl) nodeAndType.getNode()).validateRemoveOutgoingConnection(nodeAndType.getType(), outConnection);
        return;
      }
    }
    throw new IllegalArgumentException(
      "Could not find internal outgoing connection for node");
  }
}

代码示例来源:origin: kiegroup/jbpm

currentNode = ((AsyncEventNode) currentNode).getActualNode();
List<Connection> connections = currentNode.getOutgoingConnections(org.jbpm.workflow.core.Node.CONNECTION_DEFAULT_TYPE);

代码示例来源:origin: kiegroup/jbpm

public void removeOutgoingConnection(String type, Connection connection) {
  super.removeOutgoingConnection(type, connection);
  CompositeNode.NodeAndType nodeAndType = internalGetLinkedOutgoingNode(type);
  if (nodeAndType != null) {
    for (Connection outConnection: nodeAndType.getNode().getOutgoingConnections(nodeAndType.getType())) {
      if (((CompositeNodeEnd) outConnection.getTo()).getOutNodeId() == connection.getTo().getId()) {
        Node compositeNodeEnd = outConnection.getTo();
        ((ConnectionImpl) outConnection).terminate();
        internalRemoveNode(compositeNodeEnd);
        return;
      }
    }
    throw new IllegalArgumentException(
      "Could not find internal outgoing connection for node");
  }
}

代码示例来源:origin: kiegroup/jbpm

protected void triggerNodeInstance(org.jbpm.workflow.instance.NodeInstance nodeInstance, String type, boolean fireEvents) {
  boolean hidden = false;
  if (getNode().getMetaData().get("hidden") != null) {
    hidden = true;
  }
  InternalKnowledgeRuntime kruntime = getProcessInstance().getKnowledgeRuntime();
  if (!hidden && fireEvents) {
    ((InternalProcessRuntime) kruntime.getProcessRuntime())
      .getProcessEventSupport().fireBeforeNodeLeft(this, kruntime);
  }
  // trigger next node
  nodeInstance.trigger(this, type);
  Collection<Connection> outgoing = getNode().getOutgoingConnections(type);
  for (Connection conn : outgoing) {
    if (conn.getTo().getId() == nodeInstance.getNodeId()) {
      this.metaData.put("OutgoingConnection", conn.getMetaData().get("UniqueId"));
      break;
    }
  }
  if (!hidden && fireEvents) {
    ((InternalProcessRuntime) kruntime.getProcessRuntime())
      .getProcessEventSupport().fireAfterNodeLeft(this, kruntime);
  }
}

代码示例来源:origin: kiegroup/jbpm

oldNodeAndType.getNode().getOutgoingConnections(oldNodeAndType.getType());
for (Connection connection: new ArrayList<Connection>(oldOutConnections)) {
  if (connection.getTo() instanceof CompositeNodeEnd) {

代码示例来源:origin: kiegroup/jbpm

connections = node.getOutgoingConnections(type);

代码示例来源:origin: kiegroup/jbpm

List<Connection> connections = null;
if (node != null) {
  connections = node.getOutgoingConnections(type);

代码示例来源:origin: kiegroup/jbpm

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);
  }
}

代码示例来源:origin: org.drools/knowledge-api

public List<Connection> getOutgoingConnections(String type) {
  return adaptConnectionList(delegate.getOutgoingConnections(type));
}

代码示例来源:origin: org.drools/knowledge-api

public Map<String, List<Connection>> getOutgoingConnections() {
  return adaptConnectionMap(delegate.getOutgoingConnections());
}

代码示例来源:origin: org.jbpm/jbpm-test

public void assertNumOfOutgoingConnections(ProcessInstance process, String nodeName, int num) {
  assertNodeExists(process, nodeName);
  WorkflowProcessInstanceImpl instance = (WorkflowProcessInstanceImpl) process;
  for (Node node : instance.getNodeContainer().getNodes()) {
    if (node.getName().equals(nodeName)) {
      if (node.getOutgoingConnections().size() != num) {
        fail("Expected outgoing connections: " + num + " - found " + node.getOutgoingConnections().size());
      } else {
        break;
      }
    }
  }
}

代码示例来源:origin: org.jbpm/jbpm-test

public void assertNumOfOutgoingConnections(ProcessInstance process, String nodeName, int num) {
  assertNodeExists(process, nodeName);
  WorkflowProcessInstanceImpl instance = (WorkflowProcessInstanceImpl) process;
  for (Node node : instance.getNodeContainer().getNodes()) {
    if (node.getName().equals(nodeName)) {
      if (node.getOutgoingConnections().size() != num) {
        fail("Expected outgoing connections: " + num + " - found " + node.getOutgoingConnections().size());
      } else {
        break;
      }
    }
  }
}

代码示例来源:origin: org.jbpm/jbpm-bpmn2

public void assertNumOfOutgoingConnections(ProcessInstance process,
    String nodeName, int num) {
  assertNodeExists(process, nodeName);
  WorkflowProcessInstanceImpl instance = (WorkflowProcessInstanceImpl) process;
  for (Node node : instance.getNodeContainer().getNodes()) {
    if (node.getName().equals(nodeName)) {
      if (node.getOutgoingConnections().size() != num) {
        fail("Expected outgoing connections: " + num + " - found "
            + node.getOutgoingConnections().size());
      } else {
        break;
      }
    }
  }
}

代码示例来源:origin: org.drools/jbpm-simulation

@Override
  public void internalTrigger(NodeInstance from, String type) {
    
    SimulationContext context = SimulationContext.getContext();

    ActivitySimulator simulator = context.getRegistry().getSimulator(getNode());
    SimulationEvent event = simulator.simulate(this, context);
    
    context.getRepository().storeEvent(event);
    
    
    List<Connection> outgoing = getNode().getOutgoingConnections().get(Node.CONNECTION_DEFAULT_TYPE);
    for (Connection conn : outgoing) {
      if (context.getCurrentPath().getSequenceFlowsIds().contains(conn.getMetaData().get("UniqueId"))) {

        triggerConnection(conn);
      }
    }
  }
}

代码示例来源:origin: kiegroup/droolsjbpm-integration

@Override
  public void internalTrigger(NodeInstance from, String type) {
    
    SimulationContext context = SimulationContext.getContext();

    ActivitySimulator simulator = context.getRegistry().getSimulator(getNode());
    SimulationEvent event = simulator.simulate(this, context);
    
    context.getRepository().storeEvent(event);
    
    
    List<Connection> outgoing = getNode().getOutgoingConnections().get(Node.CONNECTION_DEFAULT_TYPE);
    for (Connection conn : outgoing) {
      if (context.getCurrentPath().getSequenceFlowsIds().contains(conn.getMetaData().get("UniqueId"))) {

        triggerConnection(conn);
      }
    }
  }
}

代码示例来源:origin: org.jbpm/jbpm-flow

public void validateRemoveOutgoingConnection(final String type, final Connection connection) {
  CompositeNode.NodeAndType nodeAndType = internalGetLinkedOutgoingNode(type);
  if (nodeAndType != null) {
    for (Connection outConnection: nodeAndType.getNode().getOutgoingConnections(nodeAndType.getType())) {
      if (((CompositeNodeEnd) outConnection.getTo()).getOutNodeId() == connection.getTo().getId()) {
        ((NodeImpl) nodeAndType.getNode()).validateRemoveOutgoingConnection(nodeAndType.getType(), outConnection);
        return;
      }
    }
    throw new IllegalArgumentException(
      "Could not find internal outgoing connection for node");
  }
}

相关文章