Loading pom.xml +0 −6 Original line number Diff line number Diff line Loading @@ -35,12 +35,6 @@ <scope>compile</scope> </dependency> <dependency> <groupId>guru.nidi</groupId> <artifactId>graphviz-java</artifactId> <version>0.8.3</version> </dependency> <dependency> <groupId>org.jgrapht</groupId> <artifactId>jgrapht-core</artifactId> Loading src/main/java/tfm/exec/CFGLog.java +0 −7 Original line number Diff line number Diff line package tfm.exec; import com.github.javaparser.ast.Node; import guru.nidi.graphviz.engine.Format; import guru.nidi.graphviz.engine.Graphviz; import tfm.graphs.CFGGraph; import tfm.utils.FileUtil; import tfm.visitors.cfg.CFGBuilder; import java.io.File; import java.io.IOException; import java.util.Arrays; public class CFGLog extends GraphLog<CFGGraph> { public CFGLog() { Loading src/main/java/tfm/exec/GraphLog.java +31 −8 Original line number Diff line number Diff line package tfm.exec; import com.github.javaparser.ast.Node; import guru.nidi.graphviz.engine.Format; import guru.nidi.graphviz.engine.Graphviz; import tfm.graphs.Graph; import tfm.utils.FileUtil; import tfm.utils.Logger; import java.io.File; import java.io.IOException; import java.io.*; public abstract class GraphLog<G extends Graph> { public enum Format { PNG("png"), PDF("pdf"); private String ext; Format(String ext) { this.ext = ext; } public String getExt() { return ext; } } static final String CFG = "cfg"; static final String PDG = "pdg"; Loading Loading @@ -61,9 +71,22 @@ public abstract class GraphLog<G extends Graph> { this.imageName = imageName; this.format = format; generated = true; Graphviz.fromString(graph.toGraphvizRepresentation()) .render(format) .toFile(getImageFile()); File tmpDot = File.createTempFile("graph-source-", ".dot"); tmpDot.deleteOnExit(); try (Writer w = new FileWriter(tmpDot)) { w.write(graph.toGraphvizRepresentation()); } ProcessBuilder pb = new ProcessBuilder("dot", tmpDot.getAbsolutePath(), "-T" + format.getExt(), "-o", getImageFile().getAbsolutePath()); try { int result = pb.start().waitFor(); if (result != 0) { Logger.log("Image generation failed"); } } catch (InterruptedException e) { Logger.log("Image generation failed\n" + e.getMessage()); } } public void openVisualRepresentation() throws IOException { Loading @@ -72,6 +95,6 @@ public abstract class GraphLog<G extends Graph> { } protected File getImageFile() { return new File("./out/" + imageName + "." + format.name()); return new File("./out/" + imageName + "." + format.getExt()); } } src/main/java/tfm/exec/PDGLog.java +0 −1 Original line number Diff line number Diff line package tfm.exec; import guru.nidi.graphviz.engine.Format; import tfm.graphs.PDGGraph; import tfm.nodes.GraphNode; import tfm.utils.Logger; Loading Loading
pom.xml +0 −6 Original line number Diff line number Diff line Loading @@ -35,12 +35,6 @@ <scope>compile</scope> </dependency> <dependency> <groupId>guru.nidi</groupId> <artifactId>graphviz-java</artifactId> <version>0.8.3</version> </dependency> <dependency> <groupId>org.jgrapht</groupId> <artifactId>jgrapht-core</artifactId> Loading
src/main/java/tfm/exec/CFGLog.java +0 −7 Original line number Diff line number Diff line package tfm.exec; import com.github.javaparser.ast.Node; import guru.nidi.graphviz.engine.Format; import guru.nidi.graphviz.engine.Graphviz; import tfm.graphs.CFGGraph; import tfm.utils.FileUtil; import tfm.visitors.cfg.CFGBuilder; import java.io.File; import java.io.IOException; import java.util.Arrays; public class CFGLog extends GraphLog<CFGGraph> { public CFGLog() { Loading
src/main/java/tfm/exec/GraphLog.java +31 −8 Original line number Diff line number Diff line package tfm.exec; import com.github.javaparser.ast.Node; import guru.nidi.graphviz.engine.Format; import guru.nidi.graphviz.engine.Graphviz; import tfm.graphs.Graph; import tfm.utils.FileUtil; import tfm.utils.Logger; import java.io.File; import java.io.IOException; import java.io.*; public abstract class GraphLog<G extends Graph> { public enum Format { PNG("png"), PDF("pdf"); private String ext; Format(String ext) { this.ext = ext; } public String getExt() { return ext; } } static final String CFG = "cfg"; static final String PDG = "pdg"; Loading Loading @@ -61,9 +71,22 @@ public abstract class GraphLog<G extends Graph> { this.imageName = imageName; this.format = format; generated = true; Graphviz.fromString(graph.toGraphvizRepresentation()) .render(format) .toFile(getImageFile()); File tmpDot = File.createTempFile("graph-source-", ".dot"); tmpDot.deleteOnExit(); try (Writer w = new FileWriter(tmpDot)) { w.write(graph.toGraphvizRepresentation()); } ProcessBuilder pb = new ProcessBuilder("dot", tmpDot.getAbsolutePath(), "-T" + format.getExt(), "-o", getImageFile().getAbsolutePath()); try { int result = pb.start().waitFor(); if (result != 0) { Logger.log("Image generation failed"); } } catch (InterruptedException e) { Logger.log("Image generation failed\n" + e.getMessage()); } } public void openVisualRepresentation() throws IOException { Loading @@ -72,6 +95,6 @@ public abstract class GraphLog<G extends Graph> { } protected File getImageFile() { return new File("./out/" + imageName + "." + format.name()); return new File("./out/" + imageName + "." + format.getExt()); } }
src/main/java/tfm/exec/PDGLog.java +0 −1 Original line number Diff line number Diff line package tfm.exec; import guru.nidi.graphviz.engine.Format; import tfm.graphs.PDGGraph; import tfm.nodes.GraphNode; import tfm.utils.Logger; Loading