]> gerrit.simantics Code Review - simantics/interop.git/blobdiff - org.simantics.xml.sax.base/src/org/simantics/xml/sax/base/AbstractImporter.java
Don't continue parsing XML file if root element is not recognised
[simantics/interop.git] / org.simantics.xml.sax.base / src / org / simantics / xml / sax / base / AbstractImporter.java
index f175fc4b5a204dd658bb5f20f475f71b019f6ed5..f47dd9395c90e2338236fb0508ac9572a856327c 100644 (file)
@@ -19,6 +19,7 @@ public abstract class AbstractImporter {
        private Session session;\r
        private File file;\r
        private ILogger logger;\r
+       private XMLParser parser;\r
        \r
        private static final boolean USE_DELAYED = false;\r
        \r
@@ -26,6 +27,12 @@ public abstract class AbstractImporter {
                this.session = session;\r
                this.file = file;\r
        }\r
+       \r
+       public AbstractImporter(Session session, File file, XMLParser parser)  {\r
+               this.session = session;\r
+               this.file = file;\r
+               this.parser = parser;\r
+       }\r
        public Resource doImport() throws DatabaseException {\r
                return doImport(MessageService.getDefault());   \r
        }\r
@@ -47,7 +54,8 @@ public abstract class AbstractImporter {
                return file;\r
        }\r
        \r
-       public abstract void configure(XMLParser parser);\r
+       public void configure(XMLParser parser){};\r
+       \r
        \r
        private class ImportRequest extends WriteRequest {\r
                private Resource result;\r
@@ -86,8 +94,15 @@ public abstract class AbstractImporter {
        private Resource doImport(WriteGraph graph) throws DatabaseException {\r
                Layer0Utils.setDependenciesIndexingDisabled(graph, true);\r
                try {\r
-                       XMLParser parser = new XMLParser(graph);\r
-                       configure(parser);\r
+                       \r
+                       if (parser == null) {\r
+                               parser = new XMLParser();\r
+                               parser.setGraph(graph);\r
+                               configure(parser);\r
+                       } else {\r
+                               parser.setGraph(graph);\r
+                       }\r
+                       \r
                        parser.parse(file, logger);\r
                        System.out.println(file.getAbsolutePath() + " imported");\r
                        Resource root = parser.getRoot();\r