/*
* JavaInspect - Utility to visualize java software
- * Copyright (C) 2013-2018, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
+ * Copyright (C) 2013-2020, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of version 3 of the GNU Lesser General Public License
package eu.svjatoslav.inspector.java.structure;
-import eu.svjatoslav.commons.file.CommonPathResolver;
-import eu.svjatoslav.commons.string.WildCardMatcher;
-import eu.svjatoslav.inspector.java.methods.Clazz;
-import eu.svjatoslav.inspector.java.methods.ProjectScanner;
+import eu.svjatoslav.commons.string.GlobMatcher;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Map;
-import static eu.svjatoslav.inspector.java.methods.JavaFile.UTF_8;
+import static java.io.File.separator;
+import static java.lang.System.getProperty;
public class ClassGraph {
private final List<String> whitelistClassGlobs = new ArrayList<>();
TargetImageType targetImageType = TargetImageType.SVG;
- private File targetDirectory = CommonPathResolver.getDesktopDirectory();
private boolean keepDotFile;
+ /**
+ * Default to current directory
+ */
+ private File targetDirectory = new File(getProperty("user.dir") + separator);
+
public ClassGraph() {
}
getOrCreateClassDescriptor(object.getClass());
}
- /**
- * @param path path to recursively scan for java source code could be
- * relative to current project or absolute
- */
- public void addProject(final String path) {
- final ProjectScanner projectScanner = new ProjectScanner(new File(path));
- for (final Clazz clazz : projectScanner.getAllClasses())
- try {
- System.out.println("Class full name: " + clazz.getFullName());
- final Class c = Class.forName(clazz.getFullName());
- addObject(c);
- } catch (final Exception exception) {
- System.out.println("cannot add class: "
- + exception.getMessage());
- }
- }
-
public void blacklistClassGlob(final String glob) {
blacklistClassGlobs.add(glob);
}
try {
// write DOT file to disk
- final PrintWriter out = new PrintWriter(dotFile, UTF_8);
+ final PrintWriter out = new PrintWriter(dotFile, "UTF-8");
out.write(getDot());
out.close();
protected boolean isClassShown(final String className) {
for (final String pattern : blacklistClassGlobs)
- if (WildCardMatcher.match(className, pattern))
+ if (GlobMatcher.match(className, pattern))
return false;
if (!whitelistClassGlobs.isEmpty()) {
for (final String pattern : whitelistClassGlobs)
- if (WildCardMatcher.match(className, pattern))
+ if (GlobMatcher.match(className, pattern))
return true;
return false;
}