]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/runtime/RuntimeModuleMap.java
Fixed multiple issues causing dangling references to discarded queries
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / runtime / RuntimeModuleMap.java
1 package org.simantics.scl.compiler.runtime;
2
3 import java.util.Collection;
4
5 import gnu.trove.map.hash.THashMap;
6
7 public class RuntimeModuleMap {
8     THashMap<String, RuntimeModule> moduleMap = new THashMap<String, RuntimeModule>(); 
9     
10     public RuntimeModule get(String name) {
11         return moduleMap.get(name);
12     }
13     
14     public void add(RuntimeModule module) {
15         String name = module.module.getName();
16         if(!moduleMap.containsKey(name)) {
17             moduleMap.put(module.module.getName(), module);
18             for(RuntimeModule parentModule : module.parentModuleMap.values())
19                 add(parentModule);
20         }
21     }
22
23     public Collection<RuntimeModule> values() {
24         return moduleMap.values();
25     }
26
27     public int size() {
28         return moduleMap.size();
29     }
30 }