]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/runtime/RuntimeModuleMap.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / runtime / RuntimeModuleMap.java
diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/runtime/RuntimeModuleMap.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/runtime/RuntimeModuleMap.java
new file mode 100644 (file)
index 0000000..d1d8971
--- /dev/null
@@ -0,0 +1,30 @@
+package org.simantics.scl.compiler.runtime;\r
+\r
+import gnu.trove.map.hash.THashMap;\r
+\r
+import java.util.Collection;\r
+\r
+public class RuntimeModuleMap {\r
+    THashMap<String, RuntimeModule> moduleMap = new THashMap<String, RuntimeModule>(); \r
+    \r
+    public RuntimeModule get(String name) {\r
+        return moduleMap.get(name);\r
+    }\r
+    \r
+    public void add(RuntimeModule module) {\r
+        String name = module.module.getName();\r
+        if(!moduleMap.containsKey(name)) {\r
+            moduleMap.put(module.module.getName(), module);\r
+            for(RuntimeModule parentModule : module.parentModuleMap.values())\r
+                add(parentModule);\r
+        }\r
+    }\r
+\r
+    public Collection<RuntimeModule> values() {\r
+        return moduleMap.values();\r
+    }\r
+\r
+    public int size() {\r
+        return moduleMap.size();\r
+    }\r
+}\r