]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling/src/org/simantics/modeling/ImmutableComponentVariableBuilder.java
Still working for multiple readers
[simantics/platform.git] / bundles / org.simantics.modeling / src / org / simantics / modeling / ImmutableComponentVariableBuilder.java
index 37c882c643ffdfde1959ad2df6f55e7c32735ee8..87a342f13b9fa0284e17e961e66dfb736446a629 100644 (file)
@@ -3,6 +3,7 @@ package org.simantics.modeling;
 import org.simantics.db.ReadGraph;
 import org.simantics.db.Resource;
 import org.simantics.db.common.procedure.adapter.TransientCacheListener;
+import org.simantics.db.common.request.PossibleIndexRoot;
 import org.simantics.db.common.utils.NameUtils;
 import org.simantics.db.exception.DatabaseException;
 import org.simantics.db.layer0.variable.StandardGraphChildVariable;
@@ -15,7 +16,17 @@ public class ImmutableComponentVariableBuilder<Node> implements VariableBuilder<
 
        @Override
        public Variable buildChild(ReadGraph graph, Variable parent, VariableNode<Node> node, Resource child) throws DatabaseException {
-               if(graph.isImmutable(child)) {
+               boolean isImmutable = graph.isImmutable(child);
+               Resource possibleIndexRoot = graph.syncRequest(new PossibleIndexRoot(child));
+               if(possibleIndexRoot != null) {
+//                     String puri = graph.getURI(possibleIndexRoot);
+//                     if(puri.contains("ModelBroker")) 
+//                             isImmutable = true;
+//                     if(NameUtils.getSafeName(graph, child).equals("Project"))
+//                             isImmutable = false;
+               }
+               if(isImmutable) {
+//                     System.err.println("ImmutableComponentVariableContentRequest " + parent.getURI(graph) + " " + NameUtils.getSafeName(graph, child));
                        ImmutableComponentVariableContent content = graph.syncRequest(new ImmutableComponentVariableContentRequest(child), TransientCacheListener.instance());
                        return new ImmutableComponentVariable(parent, content);
                } else {