All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.ferstl.depgraph.graph.gml.GmlGraphFormatter Maven / Gradle / Ivy

Go to download

This Maven plugin generates dependency graphs on single modules or in an aggregated form on multi-module projects. The graphs are represented by .dot files. In case that Graphviz is installed on the machine where this plugin is run, the .dot file can be directly converted into all supported image files.

There is a newer version: 4.0.3
Show newest version
package com.github.ferstl.depgraph.graph.gml;

import java.util.Collection;
import com.github.ferstl.depgraph.graph.Edge;
import com.github.ferstl.depgraph.graph.GraphFormatter;
import com.github.ferstl.depgraph.graph.Node;

import static org.apache.commons.lang3.StringUtils.isNotBlank;

public class GmlGraphFormatter implements GraphFormatter {

  @Override
  public String format(String graphName, Collection> nodes, Collection edges) {
    StringBuilder result = new StringBuilder();
    result.append("graph [\n");

    //output nodes
    for (Node node : nodes) {
      result.append("node [\n");
      result.append("id \"").append(node.getNodeId()).append("\"\n");
      if (isNotBlank(node.getNodeName())) {
        result.append(node.getNodeName()).append("\n");
      }
      result.append("]\n\n");
    }

    //output edges
    for (Edge edge : edges) {
      result.append("edge [\n");
      result.append("source \"").append(edge.getFromNodeId()).append("\"\n");
      result.append("target \"").append(edge.getToNodeId()).append("\"\n");
      if (isNotBlank(edge.getName())) {
        result.append(edge.getName()).append("\n");
      }
      result.append("]\n\n");
    }

    result.append("]");
    return result.toString();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy