import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
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;
*/
private final Map<String, ClassDescriptor> fullyQualifiedNameToClassMap = new HashMap<String, ClassDescriptor>();
- private final Filter filter = new Filter();
+ private final List<String> blacklistClassPatterns = new ArrayList<String>();
+
+ private final List<String> whitelistClassPatterns = new ArrayList<String>();
public ClassGraph() {
}
}
}
+ public void blacklistClassPattern(final String pattern) {
+ blacklistClassPatterns.add(pattern);
+ }
+
/**
* @param resultFileName
* file name for the generated graph. Existing file with the same
// 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 {
}
return resultStr;
}
- public Filter getFilter() {
- return filter;
- }
-
/**
* @param clazz
* class that shall be added to graph
}
+ public boolean isClassShown(final String className) {
+ for (final String pattern : blacklistClassPatterns)
+ if (WildCardMatcher.match(className, pattern))
+ return false;
+
+ if (!whitelistClassPatterns.isEmpty()) {
+ for (final String pattern : whitelistClassPatterns)
+ if (WildCardMatcher.match(className, pattern))
+ return true;
+ return false;
+ }
+
+ return true;
+ }
+
+ public void whitelistClassPattern(final String pattern) {
+ whitelistClassPatterns.add(pattern);
+ }
+
}