X-Git-Url: https://git.hedgecode.org/?p=chesshog.git;a=blobdiff_plain;f=chesshog-graphics%2Fsrc%2Fmain%2Fjava%2Forg%2Fhedgecode%2Fchess%2Fimg%2FImageFilter.java;fp=chesshog-format%2Fsrc%2Fmain%2Fjava%2Forg%2Fhedgecode%2Fchess%2Fimg%2FImageFilter.java;h=a39255bcb3f63124de193bdadf2cb87ad2955455;hp=27c238e11e366aa7a36efa15fd52ad8a98ba0fa3;hb=e185f00e2252021d946f23f4871ae9721f7e65fa;hpb=612dc701d600159c094ab201c6de6136ae38dba9 diff --git a/chesshog-format/src/main/java/org/hedgecode/chess/img/ImageFilter.java b/chesshog-graphics/src/main/java/org/hedgecode/chess/img/ImageFilter.java similarity index 67% rename from chesshog-format/src/main/java/org/hedgecode/chess/img/ImageFilter.java rename to chesshog-graphics/src/main/java/org/hedgecode/chess/img/ImageFilter.java index 27c238e..a39255b 100644 --- a/chesshog-format/src/main/java/org/hedgecode/chess/img/ImageFilter.java +++ b/chesshog-graphics/src/main/java/org/hedgecode/chess/img/ImageFilter.java @@ -16,15 +16,17 @@ package org.hedgecode.chess.img; -import java.io.File; -import java.io.FilenameFilter; +import java.io.IOException; +import java.nio.file.DirectoryStream; +import java.nio.file.Files; +import java.nio.file.Path; /** * * * @author Dmitry Samoshin aka gotty */ -public class ImageFilter implements FilenameFilter { +public class ImageFilter implements DirectoryStream.Filter { private static final String[] IMAGES_EXTS = ImageFormat.getAllExts(); @@ -39,13 +41,17 @@ public class ImageFilter implements FilenameFilter { } @Override - public boolean accept(File dir, String name) { - return isImageName(name) && isImageExt(name); + public boolean accept(Path file) throws IOException { + if (Files.isDirectory(file)) { + return false; + } + String filename = file.getFileName().toString(); + return acceptExt(filename) && acceptName(filename); } - private boolean isImageName(String name) { + private boolean acceptName(String filename) { if (names != null) { - name = name.substring(0, name.lastIndexOf('.')); + String name = FilenameUtils.getBaseName(filename); for (String imageName : names) { if (imageName.equalsIgnoreCase(name)) return true; @@ -55,8 +61,8 @@ public class ImageFilter implements FilenameFilter { return true; } - private boolean isImageExt(String ext) { - ext = ext.substring(ext.lastIndexOf('.') + 1); + private boolean acceptExt(String filename) { + String ext = FilenameUtils.getExtension(filename); for (String imageExt : IMAGES_EXTS) { if (imageExt.equalsIgnoreCase(ext)) return true;