From 4175ba719684f0c4c01dc18f1f5f876e7771b5b1 Mon Sep 17 00:00:00 2001 From: Diomidis Spinellis Date: Sat, 20 Jul 2002 07:42:47 +0000 Subject: [PATCH] Create inheritance hierarchies. --- .../spinellis/umlgraph/doclet/ClassGraph.java | 32 +++++++++++++++---- .../spinellis/umlgraph/doclet/ClassInfo.java | 32 +++++++++++++++---- src/gr/spinellis/umlgraph/doclet/Options.java | 32 +++++++++++++++---- .../spinellis/umlgraph/doclet/StringUtil.java | 32 +++++++++++++++---- .../spinellis/umlgraph/doclet/UmlGraph.java | 32 +++++++++++++++---- src/org/umlgraph/doclet/ClassGraph.java | 32 +++++++++++++++---- src/org/umlgraph/doclet/ClassInfo.java | 32 +++++++++++++++---- src/org/umlgraph/doclet/Options.java | 32 +++++++++++++++---- src/org/umlgraph/doclet/StringUtil.java | 32 +++++++++++++++---- src/org/umlgraph/doclet/UmlGraph.java | 32 +++++++++++++++---- 10 files changed, 260 insertions(+), 60 deletions(-) diff --git a/src/gr/spinellis/umlgraph/doclet/ClassGraph.java b/src/gr/spinellis/umlgraph/doclet/ClassGraph.java index ee8cec1..96432da 100644 --- a/src/gr/spinellis/umlgraph/doclet/ClassGraph.java +++ b/src/gr/spinellis/umlgraph/doclet/ClassGraph.java @@ -19,28 +19,47 @@ */ import com.sun.javadoc.*; +import java.io.*; +import java.lang.*; +import java.util.*; class ClassGraph { private ClassDoc c; - ClassGraph(ClassDoc ic) { c = ic; } + private PrintWriter w; + + ClassGraph(PrintWriter iw, ClassDoc ic) { + c = ic; + w = iw; + } public void print() { - System.out.println(c); + w.print(c + "["); + if (c.isAbstract()) + w.print("fontname=\"Helvetica-Oblique\""); + w.println("];"); + ClassDoc s = c.superclass(); + if (s != null && !s.toString().equals("java.lang.Object")) + w.println(s + " -> " + c + " [dir=back,arrowtail=empty];\n"); } } public class UmlGraph { - public static boolean start(RootDoc root) { + private static PrintWriter w; + + public static boolean start(RootDoc root) + throws IOException, UnsupportedEncodingException { + FileOutputStream fos = new FileOutputStream("graph.dot"); + w = new PrintWriter(new BufferedWriter(new OutputStreamWriter(fos))); prologue(); ClassDoc[] classes = root.classes(); for (int i = 0; i < classes.length; i++) { - ClassGraph c = new ClassGraph(classes[i]); + ClassGraph c = new ClassGraph(w, classes[i]); c.print(); } epilogue(); return true; } private static void prologue() { - System.out.println( + w.println( "#!/usr/local/bin/dot\n" + "#\n" + "# Class hirerarchy\n" + @@ -50,6 +69,7 @@ public class UmlGraph { ); } private static void epilogue() { - System.out.println("}\n"); + w.println("}\n"); + w.flush(); } } diff --git a/src/gr/spinellis/umlgraph/doclet/ClassInfo.java b/src/gr/spinellis/umlgraph/doclet/ClassInfo.java index ee8cec1..96432da 100644 --- a/src/gr/spinellis/umlgraph/doclet/ClassInfo.java +++ b/src/gr/spinellis/umlgraph/doclet/ClassInfo.java @@ -19,28 +19,47 @@ */ import com.sun.javadoc.*; +import java.io.*; +import java.lang.*; +import java.util.*; class ClassGraph { private ClassDoc c; - ClassGraph(ClassDoc ic) { c = ic; } + private PrintWriter w; + + ClassGraph(PrintWriter iw, ClassDoc ic) { + c = ic; + w = iw; + } public void print() { - System.out.println(c); + w.print(c + "["); + if (c.isAbstract()) + w.print("fontname=\"Helvetica-Oblique\""); + w.println("];"); + ClassDoc s = c.superclass(); + if (s != null && !s.toString().equals("java.lang.Object")) + w.println(s + " -> " + c + " [dir=back,arrowtail=empty];\n"); } } public class UmlGraph { - public static boolean start(RootDoc root) { + private static PrintWriter w; + + public static boolean start(RootDoc root) + throws IOException, UnsupportedEncodingException { + FileOutputStream fos = new FileOutputStream("graph.dot"); + w = new PrintWriter(new BufferedWriter(new OutputStreamWriter(fos))); prologue(); ClassDoc[] classes = root.classes(); for (int i = 0; i < classes.length; i++) { - ClassGraph c = new ClassGraph(classes[i]); + ClassGraph c = new ClassGraph(w, classes[i]); c.print(); } epilogue(); return true; } private static void prologue() { - System.out.println( + w.println( "#!/usr/local/bin/dot\n" + "#\n" + "# Class hirerarchy\n" + @@ -50,6 +69,7 @@ public class UmlGraph { ); } private static void epilogue() { - System.out.println("}\n"); + w.println("}\n"); + w.flush(); } } diff --git a/src/gr/spinellis/umlgraph/doclet/Options.java b/src/gr/spinellis/umlgraph/doclet/Options.java index ee8cec1..96432da 100644 --- a/src/gr/spinellis/umlgraph/doclet/Options.java +++ b/src/gr/spinellis/umlgraph/doclet/Options.java @@ -19,28 +19,47 @@ */ import com.sun.javadoc.*; +import java.io.*; +import java.lang.*; +import java.util.*; class ClassGraph { private ClassDoc c; - ClassGraph(ClassDoc ic) { c = ic; } + private PrintWriter w; + + ClassGraph(PrintWriter iw, ClassDoc ic) { + c = ic; + w = iw; + } public void print() { - System.out.println(c); + w.print(c + "["); + if (c.isAbstract()) + w.print("fontname=\"Helvetica-Oblique\""); + w.println("];"); + ClassDoc s = c.superclass(); + if (s != null && !s.toString().equals("java.lang.Object")) + w.println(s + " -> " + c + " [dir=back,arrowtail=empty];\n"); } } public class UmlGraph { - public static boolean start(RootDoc root) { + private static PrintWriter w; + + public static boolean start(RootDoc root) + throws IOException, UnsupportedEncodingException { + FileOutputStream fos = new FileOutputStream("graph.dot"); + w = new PrintWriter(new BufferedWriter(new OutputStreamWriter(fos))); prologue(); ClassDoc[] classes = root.classes(); for (int i = 0; i < classes.length; i++) { - ClassGraph c = new ClassGraph(classes[i]); + ClassGraph c = new ClassGraph(w, classes[i]); c.print(); } epilogue(); return true; } private static void prologue() { - System.out.println( + w.println( "#!/usr/local/bin/dot\n" + "#\n" + "# Class hirerarchy\n" + @@ -50,6 +69,7 @@ public class UmlGraph { ); } private static void epilogue() { - System.out.println("}\n"); + w.println("}\n"); + w.flush(); } } diff --git a/src/gr/spinellis/umlgraph/doclet/StringUtil.java b/src/gr/spinellis/umlgraph/doclet/StringUtil.java index ee8cec1..96432da 100644 --- a/src/gr/spinellis/umlgraph/doclet/StringUtil.java +++ b/src/gr/spinellis/umlgraph/doclet/StringUtil.java @@ -19,28 +19,47 @@ */ import com.sun.javadoc.*; +import java.io.*; +import java.lang.*; +import java.util.*; class ClassGraph { private ClassDoc c; - ClassGraph(ClassDoc ic) { c = ic; } + private PrintWriter w; + + ClassGraph(PrintWriter iw, ClassDoc ic) { + c = ic; + w = iw; + } public void print() { - System.out.println(c); + w.print(c + "["); + if (c.isAbstract()) + w.print("fontname=\"Helvetica-Oblique\""); + w.println("];"); + ClassDoc s = c.superclass(); + if (s != null && !s.toString().equals("java.lang.Object")) + w.println(s + " -> " + c + " [dir=back,arrowtail=empty];\n"); } } public class UmlGraph { - public static boolean start(RootDoc root) { + private static PrintWriter w; + + public static boolean start(RootDoc root) + throws IOException, UnsupportedEncodingException { + FileOutputStream fos = new FileOutputStream("graph.dot"); + w = new PrintWriter(new BufferedWriter(new OutputStreamWriter(fos))); prologue(); ClassDoc[] classes = root.classes(); for (int i = 0; i < classes.length; i++) { - ClassGraph c = new ClassGraph(classes[i]); + ClassGraph c = new ClassGraph(w, classes[i]); c.print(); } epilogue(); return true; } private static void prologue() { - System.out.println( + w.println( "#!/usr/local/bin/dot\n" + "#\n" + "# Class hirerarchy\n" + @@ -50,6 +69,7 @@ public class UmlGraph { ); } private static void epilogue() { - System.out.println("}\n"); + w.println("}\n"); + w.flush(); } } diff --git a/src/gr/spinellis/umlgraph/doclet/UmlGraph.java b/src/gr/spinellis/umlgraph/doclet/UmlGraph.java index ee8cec1..96432da 100644 --- a/src/gr/spinellis/umlgraph/doclet/UmlGraph.java +++ b/src/gr/spinellis/umlgraph/doclet/UmlGraph.java @@ -19,28 +19,47 @@ */ import com.sun.javadoc.*; +import java.io.*; +import java.lang.*; +import java.util.*; class ClassGraph { private ClassDoc c; - ClassGraph(ClassDoc ic) { c = ic; } + private PrintWriter w; + + ClassGraph(PrintWriter iw, ClassDoc ic) { + c = ic; + w = iw; + } public void print() { - System.out.println(c); + w.print(c + "["); + if (c.isAbstract()) + w.print("fontname=\"Helvetica-Oblique\""); + w.println("];"); + ClassDoc s = c.superclass(); + if (s != null && !s.toString().equals("java.lang.Object")) + w.println(s + " -> " + c + " [dir=back,arrowtail=empty];\n"); } } public class UmlGraph { - public static boolean start(RootDoc root) { + private static PrintWriter w; + + public static boolean start(RootDoc root) + throws IOException, UnsupportedEncodingException { + FileOutputStream fos = new FileOutputStream("graph.dot"); + w = new PrintWriter(new BufferedWriter(new OutputStreamWriter(fos))); prologue(); ClassDoc[] classes = root.classes(); for (int i = 0; i < classes.length; i++) { - ClassGraph c = new ClassGraph(classes[i]); + ClassGraph c = new ClassGraph(w, classes[i]); c.print(); } epilogue(); return true; } private static void prologue() { - System.out.println( + w.println( "#!/usr/local/bin/dot\n" + "#\n" + "# Class hirerarchy\n" + @@ -50,6 +69,7 @@ public class UmlGraph { ); } private static void epilogue() { - System.out.println("}\n"); + w.println("}\n"); + w.flush(); } } diff --git a/src/org/umlgraph/doclet/ClassGraph.java b/src/org/umlgraph/doclet/ClassGraph.java index ee8cec1..96432da 100644 --- a/src/org/umlgraph/doclet/ClassGraph.java +++ b/src/org/umlgraph/doclet/ClassGraph.java @@ -19,28 +19,47 @@ */ import com.sun.javadoc.*; +import java.io.*; +import java.lang.*; +import java.util.*; class ClassGraph { private ClassDoc c; - ClassGraph(ClassDoc ic) { c = ic; } + private PrintWriter w; + + ClassGraph(PrintWriter iw, ClassDoc ic) { + c = ic; + w = iw; + } public void print() { - System.out.println(c); + w.print(c + "["); + if (c.isAbstract()) + w.print("fontname=\"Helvetica-Oblique\""); + w.println("];"); + ClassDoc s = c.superclass(); + if (s != null && !s.toString().equals("java.lang.Object")) + w.println(s + " -> " + c + " [dir=back,arrowtail=empty];\n"); } } public class UmlGraph { - public static boolean start(RootDoc root) { + private static PrintWriter w; + + public static boolean start(RootDoc root) + throws IOException, UnsupportedEncodingException { + FileOutputStream fos = new FileOutputStream("graph.dot"); + w = new PrintWriter(new BufferedWriter(new OutputStreamWriter(fos))); prologue(); ClassDoc[] classes = root.classes(); for (int i = 0; i < classes.length; i++) { - ClassGraph c = new ClassGraph(classes[i]); + ClassGraph c = new ClassGraph(w, classes[i]); c.print(); } epilogue(); return true; } private static void prologue() { - System.out.println( + w.println( "#!/usr/local/bin/dot\n" + "#\n" + "# Class hirerarchy\n" + @@ -50,6 +69,7 @@ public class UmlGraph { ); } private static void epilogue() { - System.out.println("}\n"); + w.println("}\n"); + w.flush(); } } diff --git a/src/org/umlgraph/doclet/ClassInfo.java b/src/org/umlgraph/doclet/ClassInfo.java index ee8cec1..96432da 100644 --- a/src/org/umlgraph/doclet/ClassInfo.java +++ b/src/org/umlgraph/doclet/ClassInfo.java @@ -19,28 +19,47 @@ */ import com.sun.javadoc.*; +import java.io.*; +import java.lang.*; +import java.util.*; class ClassGraph { private ClassDoc c; - ClassGraph(ClassDoc ic) { c = ic; } + private PrintWriter w; + + ClassGraph(PrintWriter iw, ClassDoc ic) { + c = ic; + w = iw; + } public void print() { - System.out.println(c); + w.print(c + "["); + if (c.isAbstract()) + w.print("fontname=\"Helvetica-Oblique\""); + w.println("];"); + ClassDoc s = c.superclass(); + if (s != null && !s.toString().equals("java.lang.Object")) + w.println(s + " -> " + c + " [dir=back,arrowtail=empty];\n"); } } public class UmlGraph { - public static boolean start(RootDoc root) { + private static PrintWriter w; + + public static boolean start(RootDoc root) + throws IOException, UnsupportedEncodingException { + FileOutputStream fos = new FileOutputStream("graph.dot"); + w = new PrintWriter(new BufferedWriter(new OutputStreamWriter(fos))); prologue(); ClassDoc[] classes = root.classes(); for (int i = 0; i < classes.length; i++) { - ClassGraph c = new ClassGraph(classes[i]); + ClassGraph c = new ClassGraph(w, classes[i]); c.print(); } epilogue(); return true; } private static void prologue() { - System.out.println( + w.println( "#!/usr/local/bin/dot\n" + "#\n" + "# Class hirerarchy\n" + @@ -50,6 +69,7 @@ public class UmlGraph { ); } private static void epilogue() { - System.out.println("}\n"); + w.println("}\n"); + w.flush(); } } diff --git a/src/org/umlgraph/doclet/Options.java b/src/org/umlgraph/doclet/Options.java index ee8cec1..96432da 100644 --- a/src/org/umlgraph/doclet/Options.java +++ b/src/org/umlgraph/doclet/Options.java @@ -19,28 +19,47 @@ */ import com.sun.javadoc.*; +import java.io.*; +import java.lang.*; +import java.util.*; class ClassGraph { private ClassDoc c; - ClassGraph(ClassDoc ic) { c = ic; } + private PrintWriter w; + + ClassGraph(PrintWriter iw, ClassDoc ic) { + c = ic; + w = iw; + } public void print() { - System.out.println(c); + w.print(c + "["); + if (c.isAbstract()) + w.print("fontname=\"Helvetica-Oblique\""); + w.println("];"); + ClassDoc s = c.superclass(); + if (s != null && !s.toString().equals("java.lang.Object")) + w.println(s + " -> " + c + " [dir=back,arrowtail=empty];\n"); } } public class UmlGraph { - public static boolean start(RootDoc root) { + private static PrintWriter w; + + public static boolean start(RootDoc root) + throws IOException, UnsupportedEncodingException { + FileOutputStream fos = new FileOutputStream("graph.dot"); + w = new PrintWriter(new BufferedWriter(new OutputStreamWriter(fos))); prologue(); ClassDoc[] classes = root.classes(); for (int i = 0; i < classes.length; i++) { - ClassGraph c = new ClassGraph(classes[i]); + ClassGraph c = new ClassGraph(w, classes[i]); c.print(); } epilogue(); return true; } private static void prologue() { - System.out.println( + w.println( "#!/usr/local/bin/dot\n" + "#\n" + "# Class hirerarchy\n" + @@ -50,6 +69,7 @@ public class UmlGraph { ); } private static void epilogue() { - System.out.println("}\n"); + w.println("}\n"); + w.flush(); } } diff --git a/src/org/umlgraph/doclet/StringUtil.java b/src/org/umlgraph/doclet/StringUtil.java index ee8cec1..96432da 100644 --- a/src/org/umlgraph/doclet/StringUtil.java +++ b/src/org/umlgraph/doclet/StringUtil.java @@ -19,28 +19,47 @@ */ import com.sun.javadoc.*; +import java.io.*; +import java.lang.*; +import java.util.*; class ClassGraph { private ClassDoc c; - ClassGraph(ClassDoc ic) { c = ic; } + private PrintWriter w; + + ClassGraph(PrintWriter iw, ClassDoc ic) { + c = ic; + w = iw; + } public void print() { - System.out.println(c); + w.print(c + "["); + if (c.isAbstract()) + w.print("fontname=\"Helvetica-Oblique\""); + w.println("];"); + ClassDoc s = c.superclass(); + if (s != null && !s.toString().equals("java.lang.Object")) + w.println(s + " -> " + c + " [dir=back,arrowtail=empty];\n"); } } public class UmlGraph { - public static boolean start(RootDoc root) { + private static PrintWriter w; + + public static boolean start(RootDoc root) + throws IOException, UnsupportedEncodingException { + FileOutputStream fos = new FileOutputStream("graph.dot"); + w = new PrintWriter(new BufferedWriter(new OutputStreamWriter(fos))); prologue(); ClassDoc[] classes = root.classes(); for (int i = 0; i < classes.length; i++) { - ClassGraph c = new ClassGraph(classes[i]); + ClassGraph c = new ClassGraph(w, classes[i]); c.print(); } epilogue(); return true; } private static void prologue() { - System.out.println( + w.println( "#!/usr/local/bin/dot\n" + "#\n" + "# Class hirerarchy\n" + @@ -50,6 +69,7 @@ public class UmlGraph { ); } private static void epilogue() { - System.out.println("}\n"); + w.println("}\n"); + w.flush(); } } diff --git a/src/org/umlgraph/doclet/UmlGraph.java b/src/org/umlgraph/doclet/UmlGraph.java index ee8cec1..96432da 100644 --- a/src/org/umlgraph/doclet/UmlGraph.java +++ b/src/org/umlgraph/doclet/UmlGraph.java @@ -19,28 +19,47 @@ */ import com.sun.javadoc.*; +import java.io.*; +import java.lang.*; +import java.util.*; class ClassGraph { private ClassDoc c; - ClassGraph(ClassDoc ic) { c = ic; } + private PrintWriter w; + + ClassGraph(PrintWriter iw, ClassDoc ic) { + c = ic; + w = iw; + } public void print() { - System.out.println(c); + w.print(c + "["); + if (c.isAbstract()) + w.print("fontname=\"Helvetica-Oblique\""); + w.println("];"); + ClassDoc s = c.superclass(); + if (s != null && !s.toString().equals("java.lang.Object")) + w.println(s + " -> " + c + " [dir=back,arrowtail=empty];\n"); } } public class UmlGraph { - public static boolean start(RootDoc root) { + private static PrintWriter w; + + public static boolean start(RootDoc root) + throws IOException, UnsupportedEncodingException { + FileOutputStream fos = new FileOutputStream("graph.dot"); + w = new PrintWriter(new BufferedWriter(new OutputStreamWriter(fos))); prologue(); ClassDoc[] classes = root.classes(); for (int i = 0; i < classes.length; i++) { - ClassGraph c = new ClassGraph(classes[i]); + ClassGraph c = new ClassGraph(w, classes[i]); c.print(); } epilogue(); return true; } private static void prologue() { - System.out.println( + w.println( "#!/usr/local/bin/dot\n" + "#\n" + "# Class hirerarchy\n" + @@ -50,6 +69,7 @@ public class UmlGraph { ); } private static void epilogue() { - System.out.println("}\n"); + w.println("}\n"); + w.flush(); } }