cluster = digraph.addCluster(clusterElement.getId()); cluster.setLabel(clusterElement.getName()); cluster.addNode(element.getId()).setLabel(element.getName()); } else { digraph.addNode(element.getId()).setLabel(element.getName()); digraph.addAssociation( relationship.getSourceId(), relationship.getDestinationId()).setLabel(relationship.getDescription());
public String render() { final StringBuffer out = new StringBuffer(); out.append(DotRenderer.openGraph(label, dir)); renderNodes(out); renderAssociations(out); out.append(DotRenderer.closeGraph()); return out.toString(); }
private static void printSubtopology(TopologyDescription.Subtopology subtopology, DotGraph.Digraph digraph) { DotGraph.Cluster cluster = (DotGraph.Cluster) digraph.addCluster(String.format("topology_%s", subtopology.id())) .setLabel(String.format("Sub-Topology: %s", subtopology.id()));
private static void printTopics(TopologyDescription topologyDescription, DotGraph.Digraph digraph) { final Stream<String> sourceTopics = topologyDescription.subtopologies().stream() .flatMap(subtopology -> subtopology.nodes().stream()) .filter(node -> node instanceof TopologyDescription.Source) .flatMap(node -> { final String topics = ((TopologyDescription.Source) node).topics(); return Stream.of(topics.substring(1, topics.length() - 1).split(",")); }) .map(String::trim); final Stream<String> sinkTopics = topologyDescription.subtopologies().stream() .flatMap(subtopology -> subtopology.nodes().stream()) .filter(node -> node instanceof TopologyDescription.Sink) .map(node -> ((TopologyDescription.Sink) node).topic()); Stream.concat(sourceTopics, sinkTopics) .distinct() .forEach(topic -> digraph .addNode(String.format("topic-%s", topic)) .setOptions("shape=cds") .setLabel(String.format("Topic: %s", topic))); }
public DotGraph(final String title, String direction) { this.root = new Digraph(registry, title, direction); }
public DotGraph(final String title) { this.root = new Digraph(registry, title); }
private static void printStores(TopologyDescription topologyDescription, DotGraph.Digraph digraph) { topologyDescription.subtopologies().stream() .flatMap(subtopology -> subtopology.nodes().stream()) .filter(node -> node instanceof TopologyDescription.Processor) .flatMap(node -> ((TopologyDescription.Processor) node).stores().stream()) .distinct() .forEach(topic -> digraph .addNode(String.format("store-%s", topic)) .setLabel(String.format("Store: %s", topic)) .setOptions("shape=box3d")); }
public Digraph(NodeRegistry registry, String title, String dir) { super(registry, title); this.dir = dir; setLabel(title); }