2 * JavaInspect - Utility to visualize java software
3 * Copyright (C) 2013-2014, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of version 3 of the GNU Lesser General Public License
7 * or later as published by the Free Software Foundation.
10 package eu.svjatoslav.inspector.java.structure;
12 import java.util.ArrayList;
13 import java.util.List;
15 import eu.svjatoslav.commons.string.WildCardMatcher;
20 * This class implements filter of classes that will be included or excluded
21 * from resulting graph.
23 * Filtering is done by lists of whitelist and blacklist patterns using
26 * Filtering logic is such that if at least single whitelist entry is
27 * defined then every class that is not whitelisted is automatically
28 * excluded from graph.
30 * Otherwise every class in included in graph that is not blacklisted.
33 private final List<String> blacklistClassPatterns = new ArrayList<String>();
35 private final List<String> whitelistClassPatterns = new ArrayList<String>();
37 public void blacklistClassPattern(final String pattern) {
38 blacklistClassPatterns.add(pattern);
41 public boolean isClassShown(final String className) {
42 for (final String pattern : blacklistClassPatterns)
43 if (WildCardMatcher.match(className, pattern))
46 if (!whitelistClassPatterns.isEmpty()) {
47 for (final String pattern : whitelistClassPatterns)
48 if (WildCardMatcher.match(className, pattern))
56 public void whitelistClassPattern(final String pattern) {
57 whitelistClassPatterns.add(pattern);