X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.modeling%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2Fscl%2Fontologymodule%2FOntologyModuleSourceRepository.java;h=0b882efc3a89d87d1e2591516b43909ec96800cd;hp=134b2b3d7e2acf0d803fa3612d4acefeafbe50bc;hb=258325ccd59cc58a0ec8d26a21353e1470ebd6fa;hpb=21f12e54fc7907e26e49f26f95ee3b62cbecdc61 diff --git a/bundles/org.simantics.modeling/src/org/simantics/modeling/scl/ontologymodule/OntologyModuleSourceRepository.java b/bundles/org.simantics.modeling/src/org/simantics/modeling/scl/ontologymodule/OntologyModuleSourceRepository.java index 134b2b3d7..0b882efc3 100644 --- a/bundles/org.simantics.modeling/src/org/simantics/modeling/scl/ontologymodule/OntologyModuleSourceRepository.java +++ b/bundles/org.simantics.modeling/src/org/simantics/modeling/scl/ontologymodule/OntologyModuleSourceRepository.java @@ -8,9 +8,14 @@ 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.errors.Failable; +import org.simantics.scl.compiler.errors.Failure; +import org.simantics.scl.compiler.errors.Success; +import org.simantics.scl.compiler.module.Module; +import org.simantics.scl.compiler.module.options.ModuleCompilationOptions; +import org.simantics.scl.compiler.module.repository.ModuleRepository; 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; @@ -22,15 +27,15 @@ public enum OntologyModuleSourceRepository implements ModuleSourceRepository { private static final Logger LOGGER = LoggerFactory.getLogger(OntologyModuleSourceRepository.class); - static class ModuleSourceRequest extends UnaryRead { + static class ModuleRequest extends UnaryRead { - public ModuleSourceRequest(String moduleName) { + public ModuleRequest(String moduleName) { super(moduleName); } @Override - public ModuleSource perform(ReadGraph graph) throws DatabaseException { - return new PrecompiledModuleSource(new OntologyModule(graph, parameter), -1.0); + public Module perform(ReadGraph graph) throws DatabaseException { + return new OntologyModule(graph, parameter); } }; @@ -41,12 +46,33 @@ public enum OntologyModuleSourceRepository implements ModuleSourceRepository { 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; - } + return new ModuleSource() { + + @Override + public double getPriority() { + return -1.0; + } + + @Override + public String getModuleName() { + return moduleName; + } + + @Override + public ClassLoader getClassLoader() { + return getClass().getClassLoader(); + } + + @Override + public Failable compileModule(ModuleRepository environment, UpdateListener listener, + ModuleCompilationOptions options) { + try { + return new Success(Simantics.getAvailableRequestProcessor().syncRequest(new ModuleRequest(moduleName))); + } catch(DatabaseException e) { + return new Failure(e); + } + } + }; } @Override