@Override public void populateBlackListedEdges(DirectedWeightedMultigraph<ServiceNode, FlowEdge> graph) { for (ServiceNode node: serviceNodes) { if (graph.containsVertex(node)) { blacklistedEdges.addAll(graph.incomingEdgesOf(node)); blacklistedEdges.addAll(graph.outgoingEdgesOf(node)); } else { log.info("The graph " + graph + " doesn't contains node " + node.toString()); } } for( FlowEdge flowEdge: flowEdges) { if (graph.containsEdge(flowEdge)) { blacklistedEdges.add(flowEdge); } else { log.info("The graph " + graph + "doesn't contains edge " + flowEdge.toString()); } } } }
public List<LabeledLink> getIncomingLinks(String nodeId) { List<LabeledLink> incomingLinks = new LinkedList<>(); Node node = this.getIdToNodeMap().get(nodeId); if (node == null) return incomingLinks; Set<DefaultLink> allIncomingLinks = this.getGraph().incomingEdgesOf(node); if (allIncomingLinks != null) { for (DefaultLink l : allIncomingLinks) { if (l instanceof LabeledLink) { incomingLinks.add((LabeledLink)l); } } } return incomingLinks; }
@Override public void populateBlackListedEdges(DirectedWeightedMultigraph<ServiceNode, FlowEdge> graph) { for (ServiceNode node: serviceNodes) { if (graph.containsVertex(node)) { blacklistedEdges.addAll(graph.incomingEdgesOf(node)); blacklistedEdges.addAll(graph.outgoingEdgesOf(node)); } else { log.info("The graph " + graph + " doesn't contains node " + node.toString()); } } for( FlowEdge flowEdge: flowEdges) { if (graph.containsEdge(flowEdge)) { blacklistedEdges.add(flowEdge); } else { log.info("The graph " + graph + "doesn't contains edge " + flowEdge.toString()); } } } }
public Set<LabeledLink> getIncomingLinksInTree(String nodeId) { Set<LabeledLink> results = new HashSet<>(); if (steinerTree == null) return results; if (steinerTree.vertexSet().isEmpty()) return results; Node node = null; for (Node n : steinerTree.vertexSet()) { if (n.getId().equals(nodeId)) { node = n; break; } } if (node == null) return results; results = this.steinerTree.incomingEdgesOf(node); return results; }
private static HashMap<Node, Integer> inDegreeInSet(DirectedWeightedMultigraph<Node, LabeledLink> g, Set<Node> nodes, boolean includeSelfLinks) { HashMap<Node, Integer> nodeToInDegree = new HashMap<>(); if (g == null || nodes == null) return nodeToInDegree; for (Node n : nodes) { Set<LabeledLink> incomingLinks = g.incomingEdgesOf(n); if (incomingLinks == null || incomingLinks.isEmpty()) { nodeToInDegree.put(n, 0); } else { int count = 0; for (LabeledLink l : incomingLinks) { if (includeSelfLinks) { if (nodes.contains(l.getSource())) count++; } else { if (nodes.contains(l.getSource()) && !n.equals(l.getSource())) count++; } } nodeToInDegree.put(n, count); } } return nodeToInDegree; }
neighborsInLowerLevel.add(l.getTarget()); Set<LabeledLink> incomingLinks = model.incomingEdgesOf(n); if (incomingLinks != null && !incomingLinks.isEmpty()) for (LabeledLink l : incomingLinks)
Set<DefaultLink> incomingLinks = this.graph.incomingEdgesOf(node); if (incomingLinks != null) { DefaultLink[] incomingLinksArray = incomingLinks.toArray(new DefaultLink[0]);
private void mergeModels(DirectedWeightedMultigraph<Node, LabeledLink> model1, DirectedWeightedMultigraph<Node, LabeledLink> model2) { for(Node n : model1.vertexSet()) { model2.addVertex(n); for(LabeledLink link : model1.incomingEdgesOf(n)) { model2.addVertex(link.getSource()); model2.addVertex(link.getTarget()); model2.addEdge(link.getSource(), link.getTarget(), link); } } this.models.remove(model1); } }
Set<DefaultLink> incomingLinks = tree.incomingEdgesOf(node); if (incomingLinks != null) { LabeledLink[] incomingLinksArr = incomingLinks.toArray(new LabeledLink[0]);
private void setUserTypesForColumnNodes() { if (this.graph == null) return; for (Node n : this.graph.vertexSet()) { if (!(n instanceof ColumnNode)) continue; ColumnNode cn = (ColumnNode)n; Set<LabeledLink> incomingLinks = this.graph.incomingEdgesOf(n); if (incomingLinks != null) { for (LabeledLink link : incomingLinks) { Node domain = link.getSource(); SemanticType st = new SemanticType(cn.getHNodeId(), link.getLabel(), domain.getLabel(), domain.getId(), false, Origin.User, 1.0); cn.assignUserType(st); } } else logger.debug("The column node " + ((ColumnNode)n).getColumnName() + " does not have any domain or it has more than one domain."); } }
continue; Set<DefaultLink> inLinks = this.getGraphBuilder().getGraph().incomingEdgesOf(sortedMatchedNodes.get(0)); boolean okLink = true; if (inLinks != null) {
for(LabeledLink link : model.incomingEdgesOf(n)) { Node source = link.getSource(); Node target = link.getTarget();
Set<DefaultLink> incomingLinks = this.getGraph().incomingEdgesOf(node); if (incomingLinks != null) { for (DefaultLink l : incomingLinks) {