20 package net.sf.gridarta.utils;
22 import java.io.BufferedReader;
24 import java.io.FileInputStream;
25 import java.io.IOException;
26 import java.io.InputStreamReader;
28 import java.util.WeakHashMap;
29 import java.util.prefs.Preferences;
31 import net.
sf.japi.util.filter.file.EndingFileFilter;
32 import org.jetbrains.annotations.NotNull;
52 private final Map<File, Boolean>
cache =
new WeakHashMap<>();
61 public MapFileFilter(
final boolean acceptDirectories, @NotNull
final String description, @NotNull
final String... endings) {
62 super(acceptDirectories,
true, description, endings);
88 public boolean accept(@NotNull
final File pathName) {
89 if (pathName.isDirectory()) {
96 return cache.get(pathName);
97 }
catch (
final NullPointerException ignored) {
101 return super.accept(pathName);
105 try (FileInputStream fis =
new FileInputStream(pathName)) {
107 try (BufferedReader in =
new BufferedReader(isr)) {
108 final String line = in.readLine();
109 final boolean ret = line !=
null && line.equals(
"arch map");
110 cache.put(pathName, ret);
115 }
catch (
final IOException ignored) {
116 return super.accept(pathName);