X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fjavainspect%2Fstructure%2FClassGraph.java;fp=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fjavainspect%2Fstructure%2FClassGraph.java;h=0000000000000000000000000000000000000000;hb=d717e90f4c46e26f9f54ba5638aade6688527bf4;hp=180b2c7e7744d4a9eff821cd7a02bb6719b8dc65;hpb=bdd5b19273b604c37c39c0158ae6700a770b73f4;p=javainspect.git diff --git a/src/main/java/eu/svjatoslav/javainspect/structure/ClassGraph.java b/src/main/java/eu/svjatoslav/javainspect/structure/ClassGraph.java deleted file mode 100644 index 180b2c7..0000000 --- a/src/main/java/eu/svjatoslav/javainspect/structure/ClassGraph.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 ClassGraph { - - /** - * Maps class fully qualified names to class descriptors. - */ - Map nameToClassMap = new HashMap(); - - public ClassGraph() { - } - - public ClassGraph(final Class clazz) { - addClass(clazz); - } - - public ClassGraph(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; - } - -}