/**
* DataCleaner (community edition)
* Copyright (C) 2014 Neopost - Customer Information Management
*
* This copyrighted material is made available to anyone wishing to use, modify,
* copy, or redistribute it subject to the terms and conditions of the GNU
* Lesser General Public License, as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
* for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this distribution; if not, write to:
* Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor
* Boston, MA 02110-1301 USA
*/
package org.datacleaner.util;
import java.io.File;
import javax.swing.filechooser.FileFilter;
/**
* Contains commonly used file filters.
*/
public final class FileFilters {
public static final FileFilter ALL = new FileFilter() {
@Override
public boolean accept(final File f) {
return true;
}
@Override
public String getDescription() {
return "All files";
}
};
public static final ExtensionFilter CSV = new ExtensionFilter("Comma-separated files (.csv)", ".csv");
public static final ExtensionFilter TSV = new ExtensionFilter("Tab-separated files (.tsv)", ".tsv");
public static final ExtensionFilter DAT = new ExtensionFilter("Data files (.dat)", ".dat");
public static final ExtensionFilter TXT = new ExtensionFilter("Text files (.txt)", ".txt");
public static final ExtensionFilter XLS = new ExtensionFilter("Excel 97-2003 spreadsheet (.xls)", ".xls");
public static final ExtensionFilter XLSX = new ExtensionFilter("Excel spreadsheet (.xlsx)", ".xlsx");
public static final ExtensionFilter MDB = new ExtensionFilter("Access 97-2003 database (.mdb)", ".mdb");
public static final ExtensionFilter ACCDB = new ExtensionFilter("Access database (.accdb)", ".accdb");
public static final ExtensionFilter DBF = new ExtensionFilter("Dbase database (.dbf)", ".dbf");
public static final ExtensionFilter ODB = new ExtensionFilter("OpenOffice.org database (.odb)", ".odb");
public static final ExtensionFilter XML = new ExtensionFilter("Extensible Markup Language (.xml)", ".xml");
public static final ExtensionFilter JSON = new ExtensionFilter("JavaScript Object Notation (.json)", ".json");
public static final ExtensionFilter JAR = new ExtensionFilter("Java Archive (.jar)", ".jar");
public static final ExtensionFilter HTML = new ExtensionFilter("HTML web page (.html)", ".html");
public static final ExtensionFilter EBC = new ExtensionFilter("EBCDIC (.ebc)", ".ebc");
public static final ExtensionFilter ANALYSIS_XML =
new ExtensionFilter("Analysis job (.analysis.xml)", ".analysis.xml");
public static final ExtensionFilter ANALYSIS_RESULT_SER =
new ExtensionFilter("Analysis result (.analysis.result.dat)", ".analysis.result.dat");
public static final ExtensionFilter ANALYSIS_TIMELINE_XML =
new ExtensionFilter("Analysis timeline (.analysis.timeline.xml)", ".analysis.timeline.xml");
public static final ExtensionFilter ANALYSIS_EXECUTION_LOG_XML =
new ExtensionFilter("Analysis job execution log (.analysis.execution.log.xml)",
".analysis.execution.log.xml");
private FileFilters() {
// prevent instantiation
}
public static FileFilter combined(final String description, final FileFilter... fileFilters) {
return new FileFilter() {
@Override
public boolean accept(final File f) {
for (final FileFilter fileFilter : fileFilters) {
if (fileFilter.accept(f)) {
return true;
}
}
return false;
}
@Override
public String getDescription() {
return description;
}
};
}
public static FileFilter allDataFiles() {
return combined("All data files", CSV, TSV, DAT, TXT, XLS, XLSX, MDB, ACCDB, DBF, ODB, XML, JSON);
}
}