package org.jabref.gui.importer;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import javafx.stage.FileChooser;
import org.jabref.logic.importer.Importer;
import org.jabref.logic.util.FileExtensions;
class ImportFileFilter {
private ImportFileFilter() {
}
public static FileChooser.ExtensionFilter convert(Importer format) {
return new FileChooser.ExtensionFilter(format.getExtensions().getDescription(),
format.getExtensions().getExtensions());
}
public static FileChooser.ExtensionFilter convert(String description, Collection<Importer> formats) {
List<FileExtensions> extensions = formats.stream().map(Importer::getExtensions).collect(Collectors.toList());
List<String> flatExtensions = extensions.stream().flatMap(extList -> Arrays.stream(extList.getExtensions()))
.collect(Collectors.toList());
return new FileChooser.ExtensionFilter(description, flatExtensions.toArray(new String[flatExtensions.size()]));
}
public static Optional<Importer> convert(FileChooser.ExtensionFilter extensionFilter,
Collection<Importer> formats) {
return formats.stream().filter(format -> format.getDescription().equals(extensionFilter.getDescription()))
.findFirst();
}
}