-package org.simantics.modeling.scl;\r
-\r
-\r
-import org.simantics.Simantics;\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.common.request.UnaryRead;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.scl.compiler.module.repository.UpdateListener;\r
-import org.simantics.scl.compiler.source.ModuleSource;\r
-import org.simantics.scl.compiler.source.PrecompiledModuleSource;\r
-import org.simantics.scl.compiler.source.repository.ModuleSourceRepository;\r
-import org.simantics.scl.runtime.SCLContext;\r
-\r
-import gnu.trove.procedure.TObjectProcedure;\r
-\r
-public enum OntologyModuleSourceRepository implements ModuleSourceRepository {\r
- INSTANCE;\r
-\r
- static class ModuleSourceRequest extends UnaryRead<String, ModuleSource> {\r
-\r
- public ModuleSourceRequest(String moduleName) {\r
- super(moduleName);\r
- }\r
-\r
- @Override\r
- public ModuleSource perform(ReadGraph graph) throws DatabaseException {\r
- return new PrecompiledModuleSource(new OntologyModule(graph, parameter), -1.0);\r
- }\r
-\r
- };\r
- \r
- @Override\r
- public ModuleSource getModuleSource(final String moduleName,\r
- UpdateListener listener) {\r
- if(!moduleName.startsWith("http://"))\r
- return null; // Don't do a graph request if this cannot be a resource\r
- \r
- ReadGraph graph = (ReadGraph)SCLContext.getCurrent().get("graph");\r
- \r
- try {\r
- if(graph != null) {\r
- return new PrecompiledModuleSource(new OntologyModule(graph, moduleName), -1.0);\r
- }\r
-\r
- return Simantics.getSession().syncRequest(new ModuleSourceRequest(moduleName));\r
- } catch(DatabaseException e) {\r
- e.printStackTrace();\r
- return null;\r
- }\r
- }\r
-\r
- @Override\r
- public void forAllModules(TObjectProcedure<String> procedure) {\r
- }\r
- \r
- @Override\r
- public void checkUpdates() {\r
- }\r
-\r
- @Override\r
- public String getDocumentation(String documentationName) {\r
- return null;\r
- }\r
-\r
- @Override\r
- public void forAllDocumentations(TObjectProcedure<String> procedure) {\r
- }\r
-\r
- @Override\r
- public void clear() {\r
- }\r
-\r
-}\r
+package org.simantics.modeling.scl;
+
+
+import java.util.Collection;
+import java.util.Collections;
+
+import org.simantics.Simantics;
+import org.simantics.db.ReadGraph;
+import org.simantics.db.common.request.UnaryRead;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.scl.compiler.module.repository.UpdateListener;
+import org.simantics.scl.compiler.source.ModuleSource;
+import org.simantics.scl.compiler.source.PrecompiledModuleSource;
+import org.simantics.scl.compiler.source.repository.ModuleSourceRepository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import gnu.trove.procedure.TObjectProcedure;
+
+public enum OntologyModuleSourceRepository implements ModuleSourceRepository {
+ INSTANCE;
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(OntologyModuleSourceRepository.class);
+
+ static class ModuleSourceRequest extends UnaryRead<String, ModuleSource> {
+
+ public ModuleSourceRequest(String moduleName) {
+ super(moduleName);
+ }
+
+ @Override
+ public ModuleSource perform(ReadGraph graph) throws DatabaseException {
+ return new PrecompiledModuleSource(new OntologyModule(graph, parameter), -1.0);
+ }
+
+ };
+
+ @Override
+ public ModuleSource getModuleSource(final String moduleName,
+ UpdateListener listener) {
+ if(!moduleName.startsWith("http://"))
+ return null; // Don't do a graph request if this cannot be a resource
+
+ try {
+ return Simantics.getAvailableRequestProcessor().syncRequest(new ModuleSourceRequest(moduleName));
+ } catch(DatabaseException e) {
+ LOGGER.error("Failed to read ontology module " + moduleName + ".", e);
+ return null;
+ }
+ }
+
+ @Override
+ public void forAllModules(TObjectProcedure<String> procedure) {
+ }
+
+ @Override
+ public Collection<String> getModuleNames() {
+ return Collections.emptyList();
+ }
+
+}