1 package org.simantics.modeling.scl;
\r
4 import org.simantics.Simantics;
\r
5 import org.simantics.db.ReadGraph;
\r
6 import org.simantics.db.common.request.UnaryRead;
\r
7 import org.simantics.db.exception.DatabaseException;
\r
8 import org.simantics.scl.compiler.module.repository.UpdateListener;
\r
9 import org.simantics.scl.compiler.source.ModuleSource;
\r
10 import org.simantics.scl.compiler.source.PrecompiledModuleSource;
\r
11 import org.simantics.scl.compiler.source.repository.ModuleSourceRepository;
\r
12 import org.simantics.scl.runtime.SCLContext;
\r
14 import gnu.trove.procedure.TObjectProcedure;
\r
16 public enum OntologyModuleSourceRepository implements ModuleSourceRepository {
\r
19 static class ModuleSourceRequest extends UnaryRead<String, ModuleSource> {
\r
21 public ModuleSourceRequest(String moduleName) {
\r
26 public ModuleSource perform(ReadGraph graph) throws DatabaseException {
\r
27 return new PrecompiledModuleSource(new OntologyModule(graph, parameter), -1.0);
\r
33 public ModuleSource getModuleSource(final String moduleName,
\r
34 UpdateListener listener) {
\r
35 if(!moduleName.startsWith("http://"))
\r
36 return null; // Don't do a graph request if this cannot be a resource
\r
38 ReadGraph graph = (ReadGraph)SCLContext.getCurrent().get("graph");
\r
42 return new PrecompiledModuleSource(new OntologyModule(graph, moduleName), -1.0);
\r
45 return Simantics.getSession().syncRequest(new ModuleSourceRequest(moduleName));
\r
46 } catch(DatabaseException e) {
\r
47 e.printStackTrace();
\r
53 public void forAllModules(TObjectProcedure<String> procedure) {
\r
57 public void checkUpdates() {
\r
61 public String getDocumentation(String documentationName) {
\r
66 public void forAllDocumentations(TObjectProcedure<String> procedure) {
\r
70 public void clear() {
\r