package com.akjava.gwt.html5.client.file; import com.google.common.base.Ascii; import com.google.common.base.Predicate; import com.google.common.collect.Lists; public class FilePredicates { public static class ListedExtensionOnly implements Predicate<File>{ private Iterable<String> extensions; public ListedExtensionOnly(Iterable<String> extensions){ this.extensions=extensions; } @Override public boolean apply(File file) { if(file==null){ return false; } String extension=FileUtils.getExtension(file.getFileName()); for(String ext:extensions){ boolean match=Ascii.equalsIgnoreCase(extension, ext); if(match){ return true; } } return false; } } //for ImagePredicate //TODO supplier? public static ListedExtensionOnly getImageExtensionOnly(){ return ImageExtensionOnly; } private static ListedExtensionOnly ImageExtensionOnly=new ListedExtensionOnly(Lists.newArrayList("png","jpg","jpeg","gif","webp","bmp","ico")); }