added possibility to whitelist or blacklist classes of packages by wildcard pattern
[javainspect.git] / src / main / java / eu / svjatoslav / inspector / java / structure / Filter.java
1 package eu.svjatoslav.inspector.java.structure;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import eu.svjatoslav.commons.string.WildCardMatcher;
7
8 public class Filter {
9
10         private static final List<String> blacklistedClasses = new ArrayList<String>();
11
12         private static final List<String> whitelistedClasses = new ArrayList<String>();
13
14         public void blacklistClassPattern(final String pattern) {
15                 blacklistedClasses.add(pattern);
16         }
17
18         public boolean isClassShown(final String className) {
19                 for (final String pattern : blacklistedClasses)
20                         if (WildCardMatcher.match(className, pattern))
21                                 return false;
22
23                 if (!whitelistedClasses.isEmpty()) {
24                         for (final String pattern : whitelistedClasses)
25                                 if (WildCardMatcher.match(className, pattern))
26                                         return true;
27                         return false;
28                 }
29
30                 return true;
31         }
32
33         public void whitelistClassPattern(final String pattern) {
34                 whitelistedClasses.add(pattern);
35         }
36
37 }