]> gerrit.simantics Code Review - simantics/interop.git/blobdiff - org.simantics.xml.sax/src/org/simantics/xml/sax/ImporterGenerator.java
Fix possible NPE when handling added and removed properties
[simantics/interop.git] / org.simantics.xml.sax / src / org / simantics / xml / sax / ImporterGenerator.java
index ba1eff9cc261e62331fb1b865c25783785aec6c2..3e02434e797481d721e9e1f5ac0a0290f5a8e322 100644 (file)
@@ -203,6 +203,7 @@ public class ImporterGenerator extends JavaGenerator{
                }
                fw.writer.println("      "+getOntologyImport());
                fw.writer.println("      Layer0 L0 = Layer0.getInstance(graph);");
+               fw.writer.println("      XMLResource XML = XMLResource.getInstance(graph);");
                this.base.handleComplexTypeAttributes(complexTypeObj);
                this.base.handleExtensionAttributes(complexTypeObj);
                
@@ -251,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("            }");
                }
                
@@ -288,7 +291,7 @@ public class ImporterGenerator extends JavaGenerator{
                fw.delayedWriter2.println("         super(\""+refName+"\"," +this.ontologyClassName+".URIs."+getName(parent) + "_has"+refName+", "+typeEntry.binding+");");
                fw.delayedWriter2.println("      }\n");
                fw.delayedWriter2.println("      @Override");
-               fw.delayedWriter2.println("      public void configure(WriteGraph graph, ParserElement element, String value)   throws DatabaseException {");
+               fw.delayedWriter2.println("      public void configure(WriteGraph graph, ParserElement element, java.lang.String value) throws DatabaseException {");
                fw.delayedWriter2.println("         Layer0 L0 = Layer0.getInstance(graph);");
 
                SchemaObject simpleType = base.getSimpleType(typeName);
@@ -320,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("            }");
                }