]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.fileimport/src/org/simantics/fileimport/LibraryFolderFileImport.java
Sync git svn branch with SVN repository r33144.
[simantics/platform.git] / bundles / org.simantics.fileimport / src / org / simantics / fileimport / LibraryFolderFileImport.java
diff --git a/bundles/org.simantics.fileimport/src/org/simantics/fileimport/LibraryFolderFileImport.java b/bundles/org.simantics.fileimport/src/org/simantics/fileimport/LibraryFolderFileImport.java
new file mode 100644 (file)
index 0000000..b688895
--- /dev/null
@@ -0,0 +1,40 @@
+package org.simantics.fileimport;\r
+\r
+import java.nio.file.Path;\r
+import java.util.Collections;\r
+import java.util.Map;\r
+import java.util.Optional;\r
+\r
+import org.simantics.Simantics;\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.WriteGraph;\r
+import org.simantics.db.common.request.WriteResultRequest;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.modeling.ModelingUtils;\r
+\r
+public class LibraryFolderFileImport extends SimanticsResourceFileImport {\r
+\r
+    private static final Map<String, String> ALLOWED_EXTENSIONS = Collections.singletonMap(FileImportService.FOLDER, FileImportService.FOLDER);\r
+\r
+    @Override\r
+    public Map<String, String> allowedExtensionsWithFilters() {\r
+        return ALLOWED_EXTENSIONS;\r
+    }\r
+\r
+    @Override\r
+    public Optional<Resource> perform(Resource parent, Path file) {\r
+        final String name = file.getFileName().toString();\r
+        try {\r
+            return Optional.of(Simantics.getSession().syncRequest(new WriteResultRequest<Resource>() {\r
+\r
+                @Override\r
+                public Resource perform(WriteGraph graph) throws DatabaseException {\r
+                    return ModelingUtils.createLibrary(graph, parent, name);\r
+                }\r
+            }));\r
+        } catch (DatabaseException e) {\r
+            e.printStackTrace();\r
+            return Optional.empty();\r
+        }\r
+    }\r
+}\r