fixed javadoc issues
[javainspect.git] / src / main / java / eu / svjatoslav / inspector / java / structure / ClassGraph.java
index cee1ee4..c8de18b 100755 (executable)
@@ -33,12 +33,19 @@ public class ClassGraph {
 
        private final List<String> whitelistClassPatterns = new ArrayList<String>();
 
+       private String targetDirectory = CommonPathResolver.getDesktopDirectory()
+                       .getAbsolutePath() + "/";
+
+       private boolean keepDotFile;
+
        public ClassGraph() {
        }
 
        /**
         * @param objects
         *            objects that shall be added to graph
+        *
+        * @return this {@link ClassGraph}
         */
        public ClassGraph add(final Object... objects) {
 
@@ -78,54 +85,15 @@ public class ClassGraph {
                blacklistClassPatterns.add(pattern);
        }
 
-       /**
-        * @param resultFileName
-        *            file name for the generated graph. Existing file with the same
-        *            name will be overwritten.
-        */
-       public void generateGraph(final String resultFileName) {
-               generateGraph(resultFileName, false);
-       }
-
        /**
         * @param resultFileName
         *            file name for the generated graph. File extension will be
         *            added automatically. Existing file with the same name will be
         *            overwritten.
         *
-        * @param keepDotFile
-        *            if set to <code>true</code> then intermediary GraphViz DOT
-        *            file will be kept.
         */
 
-       public void generateGraph(final String resultFileName,
-                       final boolean keepDotFile) {
-
-               final String desktopPath = CommonPathResolver.getDesktopDirectory()
-                               .getAbsolutePath() + "/";
-
-               generateGraph(desktopPath, resultFileName, keepDotFile);
-       }
-
-       /**
-        * @param targetDirectory
-        *            target directory name
-        *
-        * @param resultFileName
-        *            file name for the generated graph. File extension will be
-        *            added automatically. Existing file with the same name will be
-        *            overwritten.
-        *
-        * @param keepDotFile
-        *            if set to <code>true</code> then intermediary GraphViz DOT
-        *            file will be kept.
-        */
-
-       public void generateGraph(String targetDirectory,
-                       final String resultFileName, final boolean keepDotFile) {
-
-               if (!targetDirectory.endsWith("/"))
-                       targetDirectory += "/";
+       public void generateGraph(final String resultFileName) {
 
                final String dotFilePath = targetDirectory + resultFileName + ".dot";
                final String imageFilePath = targetDirectory + resultFileName + ".png";
@@ -141,17 +109,15 @@ public class ClassGraph {
                        // execute GraphViz to visualize graph
                        try {
                                Runtime.getRuntime()
-                               .exec(new String[] { "dot", "-Tpng", dotFilePath, "-o",
-                                               imageFilePath }).waitFor();
+                                               .exec(new String[] { "dot", "-Tpng", dotFilePath, "-o",
+                                                               imageFilePath }).waitFor();
                        } catch (final InterruptedException e) {
                        } finally {
                        }
 
-                       if (!keepDotFile) {
+                       if (!keepDotFile)
                                // delete dot file
-                               final File dotFile = new File(dotFilePath);
-                               dotFile.delete();
-                       }
+                               new File(dotFilePath).delete();
                } catch (final IOException e) {
                        System.err.println(e);
                }
@@ -177,6 +143,8 @@ public class ClassGraph {
        /**
         * @param clazz
         *            class that shall be added to graph
+        *
+        * @return {@link ClassDescriptor} corresponding to given {@link Class}
         */
        protected ClassDescriptor getOrCreateClassDescriptor(final Class clazz) {
 
@@ -201,16 +169,19 @@ public class ClassGraph {
 
        /**
         * Hide orphaned class that have no references
+        *
+        * @return this {@link ClassGraph}
         */
-       public void hideOrphanedClasses() {
+       public ClassGraph hideOrphanedClasses() {
 
                for (final ClassDescriptor classDescriptor : fullyQualifiedNameToClassMap
                                .values())
                        classDescriptor.hideClassIfNoReferences();
 
+               return this;
        }
 
-       public boolean isClassShown(final String className) {
+       protected boolean isClassShown(final String className) {
                for (final String pattern : blacklistClassPatterns)
                        if (WildCardMatcher.match(className, pattern))
                                return false;
@@ -225,8 +196,25 @@ public class ClassGraph {
                return true;
        }
 
-       public void whitelistClassPattern(final String pattern) {
+       public ClassGraph setKeepDotFile(final boolean keepDotFile) {
+               this.keepDotFile = keepDotFile;
+
+               return this;
+       }
+
+       public ClassGraph setTargetDirectory(String directoryPath) {
+               if (!directoryPath.endsWith("/"))
+                       directoryPath += "/";
+
+               targetDirectory = directoryPath;
+
+               return this;
+       }
+
+       public ClassGraph whitelistClassPattern(final String pattern) {
                whitelistClassPatterns.add(pattern);
+
+               return this;
        }
 
 }