import org.simantics.scl.compiler.source.StringModuleSource;\r
import org.simantics.scl.compiler.source.repository.ModuleSourceRepository;\r
import org.simantics.scl.runtime.SCLContext;\r
+import org.simantics.structural2.utils.StructuralUtils;\r
import org.simantics.scl.runtime.tuple.Tuple0;\r
\r
import gnu.trove.procedure.TObjectProcedure;\r
\r
public static class GraphModuleSource extends StringModuleSource {\r
\r
- public GraphModuleSource(String moduleName, ClassLoader classLoader, String moduleText) {\r
+ private final boolean immutable;\r
+\r
+ public GraphModuleSource(String moduleName, ClassLoader classLoader, String moduleText, boolean immutable) {\r
super(moduleName, classLoader, moduleText);\r
+ this.immutable = immutable;\r
}\r
\r
@Override\r
public boolean isUpdateable() {\r
- return true;\r
+ return !immutable;\r
}\r
\r
@Override\r
if(!graph.isInstanceOf(moduleResource, L0.SCLModule))\r
return null;\r
String text = graph.getRelatedValue(moduleResource, L0.SCLModule_definition);\r
- return new GraphModuleSource(parameter, getClass().getClassLoader(), text);\r
+ boolean immutable = StructuralUtils.isImmutable(graph, moduleResource);\r
+ return new GraphModuleSource(parameter, getClass().getClassLoader(), text, immutable);\r
}\r
}\r
\r