import org.simantics.db.exception.DatabaseException;
import org.simantics.db.procedure.SyncListener;
import org.simantics.db.request.Read;
+import org.simantics.db.request.ReadExt;
+import org.simantics.db.request.RequestFlags;
import org.simantics.layer0.Layer0;
import org.simantics.modeling.ModelingUtils;
import org.simantics.modeling.internal.Activator;
+import org.simantics.modeling.scl.ontologymodule.OntologyModuleSourceRepository;
import org.simantics.scl.compiler.internal.codegen.types.JavaReferenceValidatorFactory;
import org.simantics.scl.compiler.module.repository.UpdateListener;
import org.simantics.scl.compiler.module.repository.UpdateListener.Observable;
else
return Simantics.getAvailableRequestProcessor().syncRequest(request);
} catch (DatabaseException e) {
- LOGGER.error("Failed to read graph module " + moduleName + ".", e);
+ LOGGER.error("Failed to read graph module {}.", moduleName, e);
return null;
}
}
@Override
public void exception(ReadGraph graph, Throwable t)
throws DatabaseException {
- t.printStackTrace();
+ LOGGER.error("Could not listen {}", this, t);
if(alreadyExecutedOnce && listener != null)
fireUpdate(graph);
}
+
+ @Override
+ public String toString() {
+ return moduleName + " " + listener + " (" + alreadyExecutedOnce + ") [" + getClass().toString() + "]";
+ }
};
public static class GraphModuleSource extends StringModuleSource {
try {
Simantics.getSession().syncRequest(new WriteModuleSource(getModuleName(), newSourceText));
} catch (DatabaseException e) {
- e.printStackTrace();
+ LOGGER.error("Could not update {} with newSourceText {}", this, newSourceText);
}
}
}
}
+ static class PossibleResourceIU extends UnaryRead<String,Resource> implements ReadExt {
+
+ public PossibleResourceIU(String parameter) {
+ super(parameter);
+ }
+
+ @Override
+ public Resource perform(ReadGraph graph) throws DatabaseException {
+ return graph.getPossibleResource(parameter);
+ }
+
+ @Override
+ public boolean isImmutable(ReadGraph graph) throws DatabaseException {
+ return false;
+ }
+
+ @Override
+ public int getType() {
+ return RequestFlags.IMMEDIATE_UPDATE;
+ }
+
+ }
+
static class ReadModuleSource extends UnaryRead<String, ModuleSource> {
public ReadModuleSource(String moduleName) {
super(moduleName);
@Override
public ModuleSource perform(ReadGraph graph) throws DatabaseException {
- Resource moduleResource = graph.getPossibleResource(parameter);
+ Resource moduleResource = graph.syncRequest(new PossibleResourceIU(parameter));
if(moduleResource == null)
return null;
Layer0 L0 = Layer0.getInstance(graph);
@Override
public void forAllModules(TObjectProcedure<String> procedure) {
+ THashSet<String> moduleURIs = null;
try {
- THashSet<String> moduleURIs = Simantics.getAvailableRequestProcessor().syncRequest(new Read<THashSet<String>>() {
+ moduleURIs = Simantics.getAvailableRequestProcessor().syncRequest(new Read<THashSet<String>>() {
@Override
public THashSet<String> perform(ReadGraph graph)
throws DatabaseException {
});
moduleURIs.forEach(procedure);
} catch (DatabaseException e) {
- e.printStackTrace();
+ LOGGER.error("Could not execute procedure {} for all modules {}", procedure, String.valueOf(moduleURIs), e);
}
}