X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fjavainspect%2Fstructure%2FGraph.java;fp=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fjavainspect%2Fstructure%2FGraph.java;h=0000000000000000000000000000000000000000;hb=5420578cb5e2f66fd0ca780192808be376f9d5b9;hp=e1f7ff835411c89b91a5bf118402959d7253f0f9;hpb=13eb4378a21127f9ebfb226b7f883ec4ca538215;p=javainspect.git diff --git a/src/main/java/eu/svjatoslav/javainspect/structure/Graph.java b/src/main/java/eu/svjatoslav/javainspect/structure/Graph.java deleted file mode 100644 index e1f7ff8..0000000 --- a/src/main/java/eu/svjatoslav/javainspect/structure/Graph.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * JavaInspect - Utility to visualize java software - * Copyright (C) 2013, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public License - * as published by the Free Software Foundation. - */ - -package eu.svjatoslav.javainspect.structure; - -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.HashMap; -import java.util.Map; - -import eu.svjatoslav.commons.file.CommonPathResolver; - -public class Graph { - - /** - * Maps class fully qualified names to class descriptors. - */ - Map nameToClassMap = new HashMap(); - - public Graph() { - } - - public Graph(final Class clazz) { - addClass(clazz); - } - - public Graph(final Object root) { - addClass(root.getClass()); - } - - public ClassDescriptor addClass(final Class clazz) { - - if (clazz == null) - return null; - - final String className = clazz.getName(); - - if (nameToClassMap.containsKey(className)) - return nameToClassMap.get(className); - - return new ClassDescriptor(clazz, this); - } - - public ClassDescriptor addObject(final Object object) { - return addClass(object.getClass()); - } - - public void generateGraph(final String graphName) { - generateGraph(graphName, false); - } - - public void generateGraph(final String graphName, final boolean keepDotFile) { - - final String desktopPath = CommonPathResolver.getDesktopDirectory() - .getAbsolutePath() + "/"; - - final String dotFilePath = desktopPath + graphName + ".dot"; - final String imageFilePath = desktopPath + graphName + ".png"; - - System.out.println("Dot file path:" + dotFilePath); - - try { - // write DOT file to disk - final PrintWriter out = new PrintWriter(dotFilePath); - out.write(getDot()); - out.close(); - - // execute GraphViz to visualize graph - try { - Runtime.getRuntime() - .exec(new String[] { "dot", "-Tpng", dotFilePath, "-o", - imageFilePath }).waitFor(); - } catch (final InterruptedException e) { - } finally { - } - - if (!keepDotFile) { - // delete dot file - final File dotFile = new File(dotFilePath); - dotFile.delete(); - } - } catch (final IOException e) { - System.err.println(e); - } - } - - private String getDot() { - final StringBuffer result = new StringBuffer(); - - result.append("digraph Java {\n"); - result.append("graph [rankdir=LR, overlap = false, concentrate=true];\n"); - - for (final Map.Entry entry : nameToClassMap - .entrySet()) - result.append(entry.getValue().getDot()); - - result.append("}\n"); - - final String resultStr = result.toString(); - return resultStr; - } - -}