]> gerrit.simantics Code Review - simantics/interop.git/blobdiff - org.simantics.xml.sax/src/org/simantics/xml/sax/ImporterGenerator.java
Switch to delayed write for more performance.
[simantics/interop.git] / org.simantics.xml.sax / src / org / simantics / xml / sax / ImporterGenerator.java
index 206acc0eca84f78d30a1aac4778f070bda1a33c2..3e02434e797481d721e9e1f5ac0a0290f5a8e322 100644 (file)
@@ -252,26 +252,28 @@ public class ImporterGenerator extends JavaGenerator{
 
                // element type specific list
                fw.delayedWriter.println("            {");
-               fw.delayedWriter.println("               Resource list = graph.getPossibleObject(element.getData(),"+ontShort+getName(parent)+"_has"+refName + "_List);");
-               fw.delayedWriter.println("               if (list == null) {");
-               fw.delayedWriter.println("                  list = org.simantics.db.common.utils.ListUtils.create(graph, java.util.Collections.singletonList(child.getData()));");
-               fw.delayedWriter.println("                  graph.claim(element.getData(),"+ontShort+getName(parent)+"_has"+refName + "_List,list);");
-               fw.delayedWriter.println("               } else {");
-               fw.delayedWriter.println("                  org.simantics.db.common.utils.ListUtils.insertBack(graph, list, java.util.Collections.singletonList(child.getData()));");
-               fw.delayedWriter.println("               }");
+               fw.delayedWriter.println("               element.registerListChild("+ontShort+getName(parent)+"_has"+refName + "_List, child);");
+//             fw.delayedWriter.println("               Resource list = graph.getPossibleObject(element.getData(),"+ontShort+getName(parent)+"_has"+refName + "_List);");
+//             fw.delayedWriter.println("               if (list == null) {");
+//             fw.delayedWriter.println("                  list = org.simantics.db.common.utils.ListUtils.create(graph, java.util.Collections.singletonList(child.getData()));");
+//             fw.delayedWriter.println("                  graph.claim(element.getData(),"+ontShort+getName(parent)+"_has"+refName + "_List,list);");
+//             fw.delayedWriter.println("               } else {");
+//             fw.delayedWriter.println("                  org.simantics.db.common.utils.ListUtils.insertBack(graph, list, java.util.Collections.singletonList(child.getData()));");
+//             fw.delayedWriter.println("               }");
                fw.delayedWriter.println("            }");
                }
                if (useOriginalList) {
                // generic list
                fw.delayedWriter.println("            {");
                fw.delayedWriter.println("               XMLResource XML = XMLResource.getInstance(graph);");
-               fw.delayedWriter.println("               Resource list = graph.getPossibleObject(element.getData(), XML.hasOriginalElementList);");
-               fw.delayedWriter.println("               if (list == null) {");
-               fw.delayedWriter.println("                  list = org.simantics.db.common.utils.ListUtils.create(graph, java.util.Collections.singletonList(child.getData()));");
-               fw.delayedWriter.println("                  graph.claim(element.getData(), XML.hasOriginalElementList,list);");
-               fw.delayedWriter.println("               } else {");
-               fw.delayedWriter.println("                  org.simantics.db.common.utils.ListUtils.insertBack(graph, list, java.util.Collections.singletonList(child.getData()));");
-               fw.delayedWriter.println("               }");
+               fw.delayedWriter.println("               element.registerListChild(XML.hasOriginalElementList, child);");
+//             fw.delayedWriter.println("               Resource list = graph.getPossibleObject(element.getData(), XML.hasOriginalElementList);");
+//             fw.delayedWriter.println("               if (list == null) {");
+//             fw.delayedWriter.println("                  list = org.simantics.db.common.utils.ListUtils.create(graph, java.util.Collections.singletonList(child.getData()));");
+//             fw.delayedWriter.println("                  graph.claim(element.getData(), XML.hasOriginalElementList,list);");
+//             fw.delayedWriter.println("               } else {");
+//             fw.delayedWriter.println("                  org.simantics.db.common.utils.ListUtils.insertBack(graph, list, java.util.Collections.singletonList(child.getData()));");
+//             fw.delayedWriter.println("               }");
                fw.delayedWriter.println("            }");
                }
                
@@ -321,26 +323,28 @@ public class ImporterGenerator extends JavaGenerator{
 
                // element type specific list
                fw.delayedWriter.println("            {");
-               fw.delayedWriter.println("               Resource list = graph.getPossibleObject(element.getData(),"+ontShort+getName(parent)+"_has"+refName + "_List);");
-               fw.delayedWriter.println("               if (list == null) {");
-               fw.delayedWriter.println("                  list = org.simantics.db.common.utils.ListUtils.create(graph, java.util.Collections.singletonList(child.getData()));");
-               fw.delayedWriter.println("                  graph.claim(element.getData(),"+ontShort+getName(parent)+"_has"+refName + "_List,list);");
-               fw.delayedWriter.println("               } else {");
-               fw.delayedWriter.println("                  org.simantics.db.common.utils.ListUtils.insertBack(graph, list, java.util.Collections.singletonList(child.getData()));");
-               fw.delayedWriter.println("               }");
+               fw.delayedWriter.println("               element.registerListChild(" + ontShort+getName(parent)+"_has"+refName + "_List, child);");
+//             fw.delayedWriter.println("               Resource list = graph.getPossibleObject(element.getData(),"+ontShort+getName(parent)+"_has"+refName + "_List);");
+//             fw.delayedWriter.println("               if (list == null) {");
+//             fw.delayedWriter.println("                  list = org.simantics.db.common.utils.ListUtils.create(graph, java.util.Collections.singletonList(child.getData()));");
+//             fw.delayedWriter.println("                  graph.claim(element.getData(),"+ontShort+getName(parent)+"_has"+refName + "_List,list);");
+//             fw.delayedWriter.println("               } else {");
+//             fw.delayedWriter.println("                  org.simantics.db.common.utils.ListUtils.insertBack(graph, list, java.util.Collections.singletonList(child.getData()));");
+//             fw.delayedWriter.println("               }");
                fw.delayedWriter.println("            }");
                }
                if (useOriginalList) {
                // generic list
                fw.delayedWriter.println("            {");
                fw.delayedWriter.println("               XMLResource XML = XMLResource.getInstance(graph);");
-               fw.delayedWriter.println("               Resource list = graph.getPossibleObject(element.getData(), XML.hasOriginalElementList);");
-               fw.delayedWriter.println("               if (list == null) {");
-               fw.delayedWriter.println("                  list = org.simantics.db.common.utils.ListUtils.create(graph, java.util.Collections.singletonList(child.getData()));");
-               fw.delayedWriter.println("                  graph.claim(element.getData(), XML.hasOriginalElementList,list);");
-               fw.delayedWriter.println("               } else {");
-               fw.delayedWriter.println("                  org.simantics.db.common.utils.ListUtils.insertBack(graph, list, java.util.Collections.singletonList(child.getData()));");
-               fw.delayedWriter.println("               }");
+               fw.delayedWriter.println("               element.registerListChild(XML.hasOriginalElementList, child);");
+//             fw.delayedWriter.println("               Resource list = graph.getPossibleObject(element.getData(), XML.hasOriginalElementList);");
+//             fw.delayedWriter.println("               if (list == null) {");
+//             fw.delayedWriter.println("                  list = org.simantics.db.common.utils.ListUtils.create(graph, java.util.Collections.singletonList(child.getData()));");
+//             fw.delayedWriter.println("                  graph.claim(element.getData(), XML.hasOriginalElementList,list);");
+//             fw.delayedWriter.println("               } else {");
+//             fw.delayedWriter.println("                  org.simantics.db.common.utils.ListUtils.insertBack(graph, list, java.util.Collections.singletonList(child.getData()));");
+//             fw.delayedWriter.println("               }");
                fw.delayedWriter.println("            }");
                }