]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/environment/filter/NegativeNamespaceFilter.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / environment / filter / NegativeNamespaceFilter.java
1 package org.simantics.scl.compiler.environment.filter;\r
2 \r
3 import gnu.trove.set.hash.THashSet;\r
4 \r
5 public class NegativeNamespaceFilter implements NamespaceFilter {\r
6     THashSet<String> excludedValues;\r
7 \r
8     public NegativeNamespaceFilter(THashSet<String> excludedValues) {\r
9         this.excludedValues = excludedValues;\r
10     }\r
11 \r
12     @Override\r
13     public boolean isValueIncluded(String name) {\r
14         return !excludedValues.contains(name);\r
15     }\r
16     \r
17     @Override\r
18     public String toString() {\r
19         return "Exclude" + excludedValues.toString();\r
20     }\r
21 \r
22     @Override\r
23     public boolean isSubsetOf(NamespaceFilter filter) {\r
24         if(filter == AcceptAllNamespaceFilter.INSTANCE)\r
25             return true;\r
26         if(filter instanceof NegativeNamespaceFilter) {\r
27             NegativeNamespaceFilter other = (NegativeNamespaceFilter)filter;\r
28             for(String name : other.excludedValues)\r
29                 if(!excludedValues.contains(name))\r
30                     return false;\r
31             return true;\r
32         }\r
33         return false;\r
34     }\r
35 }\r