Data.java
// Copyright (c) 2023 Tobias Briones. All rights reserved.
// SPDX-License-Identifier: BSD-3-Clause
// This file is part of https://github.com/tobiasbriones/blog
package engineer.mathsoftware.blog.slides.data;
import java.io.File;
import java.nio.file.Path;
import java.util.Collection;
import java.util.List;
import java.util.stream.Stream;
public final class Data {
private static final String EXTENSION_DOT = ".";
private static final String[] supportedExtensions = {
"png", "jpg"
};
public static boolean isFileSupported(Path path) {
var filter = filterValidNames(Stream
.of(path)
.map(Path::getFileName)
.map(Path::toString)
);
return filter.size() == 1;
}
public static boolean areValidImageFiles(Collection<? extends File> files) {
var filter = filterValidNames(files.stream().map(File::getName));
return filter.size() == files.size();
}
private static List<String> filterValidNames(Stream<String> name) {
var valid = List.of(supportedExtensions);
return name
.filter(x -> x.contains(EXTENSION_DOT))
.map(x -> x.substring(x.lastIndexOf(EXTENSION_DOT) + 1))
.filter(valid::contains)
.toList();
}
private Data() {}
}