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