]> gerrit.simantics Code Review - simantics/platform.git/blob
e3280daf6e731494e40f2e968093dea2e0aae9ea
[simantics/platform.git] /
1 package org.simantics.scl.compiler.environment;
2
3 import java.util.Collection;
4
5 import org.simantics.scl.compiler.elaboration.rules.TransformationRule;
6 import org.simantics.scl.compiler.module.Module;
7
8 import gnu.trove.map.hash.THashMap;
9
10 public class ConcreteEnvironment extends AbstractEnvironment {
11
12     private final THashMap<String, Module> moduleMap;
13     private final Namespace localNamespace;
14     
15     public ConcreteEnvironment(THashMap<String, Module> moduleMap,
16             Namespace localNamespace) {
17         this.moduleMap = moduleMap;
18         this.localNamespace = localNamespace;
19     }
20
21     @Override
22     public Namespace getLocalNamespace() {
23         return localNamespace;
24     }
25
26     @Override
27     protected Module getModule(String name) {
28         return moduleMap.get(name);
29     }
30     
31     @Override
32     protected Collection<Module> getModules() {
33         return moduleMap.values();
34     }
35
36     @Override
37     public void collectRules(Collection<TransformationRule> rules) {
38         for(Module module : moduleMap.values())
39             module.getRules();
40     }
41
42 }