
net.kemitix.dependency.digraph.maven.plugin.DotFileFormatSimple Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of digraph-dependency-maven-plugin Show documentation
Show all versions of digraph-dependency-maven-plugin Show documentation
Generates a DOT Digraph of dependencies between packages within a project
package net.kemitix.dependency.digraph.maven.plugin;
import net.kemitix.node.Node;
/**
* Generates a dot file dependency report as a simple digraph.
*
* @author pcampbell
*/
class DotFileFormatSimple extends AbstractDotFileFormat {
DotFileFormatSimple(
final Node base,
final NodePathGenerator nodePathGenerator) {
super(base, nodePathGenerator);
}
@Override
String renderNode(final Node node) {
final StringBuilder render = new StringBuilder();
if (!node.equals(getBase())) {
render.append("\"").append(getPath(node, ".")).append("\";");
}
node.getChildren().stream()
.sorted(new NodePackageDataComparator())
.forEach((n) -> render.append(this.renderNode(n)));
return render.toString();
}
@Override
String renderUsages(final Node node) {
final StringBuilder render = new StringBuilder();
render.append(renderUsage(node));
node.getChildren().stream()
.sorted(new NodePackageDataComparator())
.forEach((n) -> render.append(this.renderUsages(n)));
return render.toString();
}
private String renderUsage(final Node origin) {
final StringBuilder render = new StringBuilder();
final String originId = getPath(origin, ".");
origin.getData().getUses().stream()
.sorted(new NodePackageDataComparator())
.forEach((Node destination) -> {
if (destination.isChildOf(getBase())) {
render.append("\"").append(originId).append("\"->\"")
.append(getPath(destination, "."))
.append("\";");
}
});
return render.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy