import java.util.Map;
import java.util.Optional;
+import org.simantics.db.Resource;
+
/**
* Base interface for performing file imports.
*
public interface IGenericFileImport {
/**
- * Performs the import for the given file
+ * Performs the import for the given file, using the default parent defined in the file-specific import implementation
+ * Calls perform(parent, file) with the defaultParent it finds
*
* @param file Path to file to import
* @return Optional string which will be the identifier of the imported file which can later be used for removing the imported entity
* @throws Exception
*/
- Optional<String> perform(Path file) throws Exception;
-
+ Optional<String> performWithDefaultParent(Path file) throws Exception;
+
+ Optional<Resource> perform(Resource parent, Path file) throws Exception;
+
/**
* Remove the entity
*
*/
Map<String, String> allowedExtensionsWithFilters();
+ /**
+ * Choose the default parent resource in the specific implementations of the importer
+ * Can be null, in which case the default parent must always be provided from a selection UI or explicitly defined
+ * @return
+ */
+ public abstract Resource defaultParentResource();
+
}