]> gerrit.simantics Code Review - simantics/interop.git/blobdiff - org.simantics.xml.sax/src/org/simantics/xml/sax/ImporterGenerator.java
Attribute namespace + multi-schema data export
[simantics/interop.git] / org.simantics.xml.sax / src / org / simantics / xml / sax / ImporterGenerator.java
index 58f5748e05e1d4bef1f9af01611c02bcc6dc3128..9270c8f38db9f7d961e420692ca4379b0b831972 100644 (file)
@@ -60,7 +60,7 @@ public class ImporterGenerator extends JavaGenerator{
                mainWriter.println("public class " + name + importerClassPostfix+" extends AbstractImporter {");
                mainWriter.println();
                mainWriter.println("   public " + name + importerClassPostfix+"(Session session, File file)  {");
-               mainWriter.println("      super(session, file, new "+name + parserClassPostfix+"());");
+               mainWriter.println("      super(session, file, new "+name + parserClassPostfix+"().resolveDependencies());");
                mainWriter.println("   }");
                mainWriter.println();
                mainWriter.println("}");
@@ -84,7 +84,29 @@ public class ImporterGenerator extends JavaGenerator{
                for (String s : ruleClassNames) {
                mainWriter.println("      add(new "+s+"());");
                }
+               mainWriter.println();
+               mainWriter.println("   }");
+               mainWriter.println();
+               if (converter.getSubConverters().size() > 0) {
+               mainWriter.println("   public void addDependencies(java.util.Map<String,XMLParser> map) {");
+               for (SchemaConverter sc : converter.getSubConverters()) {
+               String s = sc.className;
+               if (s.endsWith("Ontology"))
+                       s = s.substring(0,s.length()-"Ontology".length());
+               s +="Parser";
+               mainWriter.println("      {");
+               mainWriter.println("         XMLParser parser = new "+s+"();");
+               mainWriter.println("         if (!map.containsKey(parser.getSchemaURI())) {");
+               mainWriter.println("            map.put(parser.getSchemaURI(), parser);");
+               mainWriter.println("            parser.addDependencies(map);");
+               mainWriter.println("         } else {");
+               mainWriter.println("            parser = map.get(parser.getSchemaURI());");
+               mainWriter.println("         }");
+               mainWriter.println("         add(parser);");
+               mainWriter.println("      }");
+               }
                mainWriter.println("   }");
+               }
                mainWriter.println("}");
                
                mainWriter.println();
@@ -235,8 +257,8 @@ public class ImporterGenerator extends JavaGenerator{
        
        @Override
        public void createReferenceIndicator(SchemaObject parent, RefType referenceType, String refName, String objectName, String primaryClassName, String secondaryClassName, boolean useElementList, boolean useOriginalList) {
-               if (refName == null)
-                       System.out.println();
+//             if (refName == null)
+//                     System.out.println();
                FileWriter fw = getWriter(parent);
                if (referenceType == RefType.Type) {
                // create internal class for handling the element and child attachment
@@ -317,8 +339,8 @@ public class ImporterGenerator extends JavaGenerator{
        
        @Override
        protected void createElementIndicator(SchemaObject parent, boolean useElementList, String refName, String className, boolean useOriginalList) {
-               if (refName == null)
-                       System.out.println();
+//             if (refName == null)
+//                     System.out.println();
                FileWriter fw = getWriter(parent);
                //if (!reference)
                fw.writer.println("        addParser(\""+ refName +"\", "+className+".class);");
@@ -500,8 +522,6 @@ public class ImporterGenerator extends JavaGenerator{
                                }
                        }
                        //dd
-                       if(true)
-                               System.out.println();
                        fw.writer.println(commentTag+"    End of AttributeGroup " + group.getName());
                }
                
@@ -554,12 +574,7 @@ public class ImporterGenerator extends JavaGenerator{
                
        }
        
-       
-       
-       
-       
-
-       
+               
        IDProvider provider;
        @Override
        public void handleElement(SchemaObject elementObj)  {