--- /dev/null
+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