]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.fileimport/src/org/simantics/fileimport/LibraryFolderFileImport.java
Merge "Testing SonarQube with Simantics Platform SDK"
[simantics/platform.git] / bundles / org.simantics.fileimport / src / org / simantics / fileimport / LibraryFolderFileImport.java
1 package org.simantics.fileimport;\r
2 \r
3 import java.nio.file.Path;\r
4 import java.util.Collections;\r
5 import java.util.Map;\r
6 import java.util.Optional;\r
7 \r
8 import org.simantics.Simantics;\r
9 import org.simantics.db.Resource;\r
10 import org.simantics.db.WriteGraph;\r
11 import org.simantics.db.common.request.WriteResultRequest;\r
12 import org.simantics.db.exception.DatabaseException;\r
13 import org.simantics.modeling.ModelingUtils;\r
14 \r
15 public class LibraryFolderFileImport extends SimanticsResourceFileImport {\r
16 \r
17     private static final Map<String, String> ALLOWED_EXTENSIONS = Collections.singletonMap(FileImportService.FOLDER, FileImportService.FOLDER);\r
18 \r
19     @Override\r
20     public Map<String, String> allowedExtensionsWithFilters() {\r
21         return ALLOWED_EXTENSIONS;\r
22     }\r
23 \r
24     @Override\r
25     public Optional<Resource> perform(Resource parent, Path file) {\r
26         final String name = file.getFileName().toString();\r
27         try {\r
28             return Optional.of(Simantics.getSession().syncRequest(new WriteResultRequest<Resource>() {\r
29 \r
30                 @Override\r
31                 public Resource perform(WriteGraph graph) throws DatabaseException {\r
32                     return ModelingUtils.createLibrary(graph, parent, name);\r
33                 }\r
34             }));\r
35         } catch (DatabaseException e) {\r
36             e.printStackTrace();\r
37             return Optional.empty();\r
38         }\r
39     }\r
40 }\r