]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/repository/ModuleRepository.java
Simupedia tuning step 2
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / module / repository / ModuleRepository.java
index a6650e9a44faa5627b41b0cf260ee6ecf6baaadb..78dfa8f886b3de9ed68648b7dbced730392a108a 100644 (file)
@@ -3,7 +3,9 @@ package org.simantics.scl.compiler.module.repository;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.simantics.scl.compiler.common.exceptions.InternalCompilerError;
@@ -52,6 +54,7 @@ public class ModuleRepository {
     private final ModuleRepository parentRepository;
     private final ModuleSourceRepository sourceRepository;
     private ConcurrentHashMap<String, ModuleEntry> moduleCache = new ConcurrentHashMap<String, ModuleEntry>();
+    public Set<RuntimeEnvironment> runtimeEnvironments = new HashSet<RuntimeEnvironment>();
     
     private static final ThreadLocal<THashSet<String>> PENDING_MODULES = new ThreadLocal<THashSet<String>>();
     
@@ -395,7 +398,9 @@ public class ModuleRepository {
         THashMap<String, Module> moduleMap = mapEntriesToModules(entries);
         Environment environment = createEnvironment(moduleMap, imports);
         THashMap<String, RuntimeModule> runtimeModuleMap = mapEntriesToRuntimeModules(entries);
-        return new RuntimeEnvironmentImpl(environment, parentClassLoader, runtimeModuleMap);
+        RuntimeEnvironmentImpl result = new RuntimeEnvironmentImpl(environment, parentClassLoader, runtimeModuleMap);
+        runtimeEnvironments.add(result);
+        return result;
     }
     
     private static Environment createEnvironment(
@@ -530,6 +535,10 @@ public class ModuleRepository {
     public void setAdvisor(ModuleCompilationOptionsAdvisor advisor) {
         this.advisor = advisor;
     }
+    
+    public Set<RuntimeEnvironment> getRuntimeEnvironments() {
+        return runtimeEnvironments;
+    }
 
 }
  
\ No newline at end of file