package org.jabref.gui.importer; import java.io.File; import java.io.FileFilter; import org.jabref.Globals; import org.jabref.logic.util.io.DatabaseFileLookup; import org.jabref.model.database.BibDatabase; import org.jabref.model.database.BibDatabaseContext; import org.jabref.model.entry.BibEntry; /** * {@link FileFilter} implementation, that allows only files which are not * linked in any of the {@link BibEntry}s of the specified * {@link BibDatabase}. <br> * <br> * This {@link FileFilter} sits on top of another {@link FileFilter} * -implementation, which it first consults. Only if this major filefilter * has accepted a file, this implementation will verify on that file. * * @author Nosh&Dan * @version 12.11.2008 | 02:00:15 * */ public class UnlinkedPDFFileFilter implements FileFilter { private final DatabaseFileLookup lookup; private final FileFilter fileFilter; public UnlinkedPDFFileFilter(FileFilter fileFilter, BibDatabaseContext databaseContext) { this.fileFilter = fileFilter; this.lookup = new DatabaseFileLookup(databaseContext, Globals.prefs.getFileDirectoryPreferences()); } @Override public boolean accept(File pathname) { return fileFilter.accept(pathname) && !lookup.lookupDatabase(pathname); } }