Util: Consolidate FileFilters

This commit is contained in:
zzz
2018-03-05 13:16:04 +00:00
parent 28923825d9
commit 0eb04facec
12 changed files with 117 additions and 100 deletions

View File

@@ -40,6 +40,7 @@ import net.i2p.I2PAppContext;
import net.i2p.data.Base64;
import net.i2p.data.DataHelper;
import net.i2p.util.Log;
import net.i2p.util.FileSuffixFilter;
import net.i2p.util.SecureFileOutputStream;
import net.i2p.util.SystemVersion;
@@ -486,21 +487,17 @@ public final class CertUtil {
*/
private static void loadCRLs(Set<X509CRL> crls, File dir) {
if (dir.exists() && dir.isDirectory()) {
File[] files = dir.listFiles();
File[] files = dir.listFiles(new FileSuffixFilter(".crl"));
if (files != null) {
for (int i = 0; i < files.length; i++) {
File f = files[i];
if (!f.isFile())
continue;
if (f.getName().endsWith(".crl")) {
try {
X509CRL crl = loadCRL(f);
crls.add(crl);
} catch (IOException ioe) {
error("Cannot load CRL from " + f, ioe);
} catch (GeneralSecurityException crle) {
error("Cannot load CRL from " + f, crle);
}
try {
X509CRL crl = loadCRL(f);
crls.add(crl);
} catch (IOException ioe) {
error("Cannot load CRL from " + f, ioe);
} catch (GeneralSecurityException crle) {
error("Cannot load CRL from " + f, crle);
}
}
}

View File

@@ -0,0 +1,42 @@
package net.i2p.util;
import java.io.File;
import java.io.FileFilter;
import java.util.Locale;
/**
* A FileFilter that accepts regular files
* with a suffix and optionally a prefix, case-insensitive.
*
* @since 0.9.34
*/
public class FileSuffixFilter implements FileFilter {
private final String begin, end;
/**
* A filter that accepts regular files that
* end with suffix, case-insensitive.
*/
public FileSuffixFilter(String suffix) {
begin = null;
end = suffix.toLowerCase(Locale.US);
}
/**
* A filter that accepts regular files that
* start with prefix and
* end with suffix, case-insensitive.
*/
public FileSuffixFilter(String prefix, String suffix) {
begin = prefix.toLowerCase(Locale.US);
end = suffix.toLowerCase(Locale.US);
}
public boolean accept(File file) {
String name = file.getName().toLowerCase(Locale.US);
return name.endsWith(end) &&
(begin == null || name.startsWith(begin)) &&
file.isFile();
}
}