+
+ mainWriter.println();
+ if (converter.getSubConverters().size() > 0) {
+ mainWriter.println(" public void addDependencies(org.simantics.db.Session session, java.util.Map<String,XMLWriter> map) throws DatabaseException {");
+ for (SchemaConverter sc : converter.getSubConverters()) {
+ String s = sc.className;
+ if (s.endsWith("Ontology"))
+ s = s.substring(0,s.length()-"Ontology".length());
+ s +="Writer";
+ mainWriter.println(" {");
+ mainWriter.println(" XMLWriter parser = new "+s+"(session);");
+ mainWriter.println(" if (!map.containsKey(parser.getSchemaURI())) {");
+ mainWriter.println(" map.put(parser.getSchemaURI(), parser);");
+ mainWriter.println(" parser.addDependencies(session,map);");
+ mainWriter.println(" } else {");
+ mainWriter.println(" parser = map.get(parser.getSchemaURI());");
+ mainWriter.println(" }");
+ mainWriter.println(" add(parser);");
+ mainWriter.println(" }");
+ }
+ mainWriter.println(" }");
+
+ mainWriter.println(" public XMLWriter resolveDependencies(org.simantics.db.Session session) throws DatabaseException {");
+ mainWriter.println(" super.resolveDependencies(session);");
+ for (SchemaConverter sc : converter.getSubConverters()) {
+ String s = sc.schemaNs;
+ mainWriter.println(" if (!nsPrefixes.containsKey(\""+s+"\")) {");
+ mainWriter.println(" nsPrefixes.put(\""+s+"\", \"ns\"+nsPrefixes.size());");
+ mainWriter.println(" }");
+ }
+ mainWriter.println(" return this;");
+ mainWriter.println(" }");
+ }