X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.xml.sax%2Fsrc%2Forg%2Fsimantics%2Fxml%2Fsax%2FImporterGenerator.java;fp=org.simantics.xml.sax%2Fsrc%2Forg%2Fsimantics%2Fxml%2Fsax%2FImporterGenerator.java;h=4b0d1b55154f3e172d0679288fd8f6597454b1b5;hb=070e46f1fba569c5f5cb70fba5681ffafcb88088;hp=58f5748e05e1d4bef1f9af01611c02bcc6dc3128;hpb=99e240f9ca43aa78fbc6d71d7905c38c00bc679a;p=simantics%2Finterop.git diff --git a/org.simantics.xml.sax/src/org/simantics/xml/sax/ImporterGenerator.java b/org.simantics.xml.sax/src/org/simantics/xml/sax/ImporterGenerator.java index 58f5748..4b0d1b5 100644 --- a/org.simantics.xml.sax/src/org/simantics/xml/sax/ImporterGenerator.java +++ b/org.simantics.xml.sax/src/org/simantics/xml/sax/ImporterGenerator.java @@ -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 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();