]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/source/repository/CompositeModuleSourceRepository.java
Fixing a deadlock. Some improvements to ModuleSourceRepository API
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / source / repository / CompositeModuleSourceRepository.java
index 82bb0bcf94368296ccc083adb5f3e6e196777878..b55e3d285f19b31abba33ffcdf1c1a99b461f2f1 100644 (file)
@@ -1,5 +1,8 @@
 package org.simantics.scl.compiler.source.repository;
 
 package org.simantics.scl.compiler.source.repository;
 
+import java.util.ArrayList;
+import java.util.Collection;
+
 import org.simantics.scl.compiler.module.repository.UpdateListener;
 import org.simantics.scl.compiler.source.ModuleSource;
 
 import org.simantics.scl.compiler.module.repository.UpdateListener;
 import org.simantics.scl.compiler.source.ModuleSource;
 
@@ -50,14 +53,36 @@ public class CompositeModuleSourceRepository implements ModuleSourceRepository {
             sourceRepository.forAllModules(procedure);
     }
     
             sourceRepository.forAllModules(procedure);
     }
     
+    @Override
+    public Collection<String> getModuleNames() {
+        ArrayList<String> result = new ArrayList<>();
+        forAllModules((String name) -> {
+            result.add(name);
+            return true;
+        });
+        return result;
+    }
+    
     @Override
     public void forAllDocumentations(TObjectProcedure<String> procedure) {
         for(ModuleSourceRepository sourceRepository : children)
             sourceRepository.forAllDocumentations(procedure);
     }
     @Override
     public void forAllDocumentations(TObjectProcedure<String> procedure) {
         for(ModuleSourceRepository sourceRepository : children)
             sourceRepository.forAllDocumentations(procedure);
     }
+    
+    @Override
+    public Collection<String> getDocumentationNames() {
+        ArrayList<String> result = new ArrayList<>();
+        forAllDocumentations((String name) -> {
+            result.add(name);
+            return true;
+        });
+        return result;
+    }
 
     @Override
     public void checkUpdates() {
 
     @Override
     public void checkUpdates() {
+        for (ModuleSourceRepository child : children)
+            child.checkUpdates();
     }
 
     @Override
     }
 
     @Override