package org.jboss.windup.reporting.renderer; import java.io.IOException; import java.nio.file.Path; import java.util.logging.Level; import org.jboss.windup.graph.GraphContext; import org.jboss.windup.reporting.renderer.dot.VizJSHtmlWriter; import org.jboss.windup.reporting.renderer.gexf.SigmaJSHtmlWriter; import org.jboss.windup.reporting.renderer.graphlib.DagreD3JSHtmlWriter; import org.jboss.windup.util.Logging; import com.tinkerpop.blueprints.Graph; public class GraphExporter extends AbstractGraphRenderer { private static final java.util.logging.Logger LOG = Logging.get(GraphExporter.class); @Override public void renderGraph(GraphContext context) { Graph graph = context.getGraph(); Path vizJSOutPath = createOutputFolder(context, "visjs"); Path sigmaOutPath = createOutputFolder(context, "sigma"); Path dagreD3OutPath = createOutputFolder(context, "dagred3"); renderVizjs(graph, vizJSOutPath, "label", "id"); renderSigma(graph, sigmaOutPath, "label", "id"); renderDagreD3(graph, dagreD3OutPath, "label", "id"); } public void renderVizjs(Graph graph, Path output, String vertexLabelProperty, String edgeLabel) { LOG.fine("Writing Vizjs graph to: " + output.toAbsolutePath()); try { new VizJSHtmlWriter(graph, vertexLabelProperty, edgeLabel).writeGraph(output); } catch (IOException e) { LOG.log(Level.WARNING, "Failed to write graph visualization due to: " + e.getMessage(), e); } } public void renderSigma(Graph graph, Path output, String vertexLabelProperty, String edgeLabel) { LOG.fine("Writing Sigmajs graph to: " + output.toAbsolutePath()); try { new SigmaJSHtmlWriter(graph, vertexLabelProperty, edgeLabel).writeGraph(output); } catch (IOException e) { LOG.log(Level.WARNING, "Failed to write graph visualization due to: " + e.getMessage(), e); } } public void renderDagreD3(Graph graph, Path output, String vertexLabelProperty, String edgeLabel) { LOG.fine("Writing DagreD3 graph to: " + output.toAbsolutePath()); try { new DagreD3JSHtmlWriter(graph, vertexLabelProperty, edgeLabel).writeGraph(output); } catch (IOException e) { LOG.log(Level.WARNING, "Failed to write graph visualization due to: " + e.getMessage(), e); } } }