]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.fileimport/src/org/simantics/fileimport/LibraryFolderFileImport.java
Merge branch 'feature/funcwrite'
[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) throws Exception {
26         final String name = file.getFileName().toString();
27         return Optional.of(Simantics.getSession().syncRequest(new WriteResultRequest<Resource>() {
28
29             @Override
30             public Resource perform(WriteGraph graph) throws DatabaseException {
31                 return ModelingUtils.createLibrary(graph, parent, name);
32             }
33         }));
34     }
35 }