/** * Create a builder for this kind of graph. * * @param edgeClass class on which to base factory for edges * @param <V> the graph vertex type * @param <E> the graph edge type * @return a builder for this kind of graph */ public static <V, E> GraphBuilder<V, E, ? extends DirectedPseudograph<V, E>> createBuilder( Class<? extends E> edgeClass) { return new GraphBuilder<>(new DirectedPseudograph<>(edgeClass)); }
private static void checkIsDAG(List<QueryQueueRule> rules) { DirectedPseudograph<String, DefaultEdge> graph = new DirectedPseudograph<>(DefaultEdge.class); for (QueryQueueRule rule : rules) { String lastQueueName = null; for (QueryQueueDefinition queue : rule.getQueues()) { String currentQueueName = queue.getTemplate(); graph.addVertex(currentQueueName); if (lastQueueName != null) { graph.addEdge(lastQueueName, currentQueueName); } lastQueueName = currentQueueName; } } List<String> shortestCycle = shortestCycle(graph); if (shortestCycle != null) { String s = Joiner.on(", ").join(shortestCycle); throw new IllegalArgumentException(format("Queues must not contain a cycle. The shortest cycle found is [%s]", s)); } }
/** * Create a builder for this kind of graph. * * @param edgeSupplier the edge supplier of the new graph * @param <V> the graph vertex type * @param <E> the graph edge type * @return a builder for this kind of graph */ public static <V, E> GraphBuilder<V, E, ? extends DirectedPseudograph<V, E>> createBuilder( Supplier<E> edgeSupplier) { return new GraphBuilder<>(new DirectedPseudograph<>(null, edgeSupplier, false)); } }
public void fetchDependencies(NetworkServiceDescriptor networkServiceDescriptor) throws NotFoundException, CyclicDependenciesException, NetworkServiceIntegrityException { DirectedPseudograph<String, DefaultEdge> g = new DirectedPseudograph<>(DefaultEdge.class); g.addVertex(vnfd.getName()); g.addEdge(vnfDependency.getSource(), vnfDependency.getTarget());
Graph<V, E> eulerGraph = new DirectedPseudograph<>( graph.getVertexSupplier(), graph.getEdgeSupplier(), graph.getType().isWeighted()); Graphs.addGraph(eulerGraph, graph);
protected DirectedGraph<Figure, DefaultEdge> extractMentionNetwork(JCas jcas) { DirectedGraph<Figure, DefaultEdge> graph = new DirectedPseudograph<Figure, DefaultEdge>(DefaultEdge.class); for (Utterance utterance : JCasUtil.select(jcas, Utterance.class)) { Speaker speaker = DramaUtil.getFirstSpeaker(utterance); if (speaker != null) for (FigureMention mention : JCasUtil.selectCovered(jcas, FigureMention.class, utterance)) { if (speaker.getFigure() != null && mention.getFigure() != null) { if (!graph.containsVertex(speaker.getFigure())) graph.addVertex(speaker.getFigure()); if (!graph.containsVertex(mention.getFigure())) graph.addVertex(mention.getFigure()); graph.addEdge(speaker.getFigure(), mention.getFigure()); } } } return graph; }
return new DirectedWeightedPseudograph<>(vertexSupplier, edgeSupplier); } else { return new DirectedPseudograph<>(vertexSupplier, edgeSupplier, false);
return new DirectedWeightedPseudograph<>(edgeClass); } else { return new DirectedPseudograph<>(edgeClass);