package org.jabref.logic.util;
import java.util.Arrays;
import java.util.List;
import java.util.StringJoiner;
import org.jabref.logic.l10n.Localization;
/**
* This enum contains all kind of file extensions for open and save dialogs.
*
* Important: Enter the extension without a dot! The dot is added implicitly.
*/
public enum FileExtensions {
//important: No dot before the extension!
BIBTEX_DB(String.format("%1s %2s", "BibTex", Localization.lang("Library")), "bib"),
BIBTEXML(Localization.lang("%0 file", "BibTeXML"), "bibx", "xml"),
BILBIOSCAPE(Localization.lang("%0 file", "Biblioscape"), "txt"),
COPAC(Localization.lang("%0 file", "Copac"), "txt"),
CITATION_STYLE(Localization.lang("%0 file", "CSL"), "csl"),
ENDNOTE(Localization.lang("%0 file", "Endnote/Refer"), "ref", "enw"),
FREECITE(Localization.lang("%0 file", "FreeCite"), "txt", "xml"),
INSPEC(Localization.lang("%0 file", "INSPEC"), "txt"),
ISI(Localization.lang("%0 file", "ISI"), "isi", "txt"),
MEDLINE(Localization.lang("%0 file", "Medline"), "nbib", "xml"),
MEDLINE_PLAIN(Localization.lang("%0 file", "MedlinePlain"), "nbib", "txt"),
MODS(Localization.lang("%0 file", "MODS"), "xml"),
MSBIB(Localization.lang("%0 file", "MSBib"), "xml"),
OVID(Localization.lang("%0 file", "Ovid"), "txt"),
PDF_CONTENT(Localization.lang("%0 file", "PDF content "), "pdf"),
PUBMED(Localization.lang("%0 file", "PubMed"), "fcgi"),
REPEC("REPEC New Economic Papers (NEP)", "txt"),
RIS(Localization.lang("%0 file", "RIS"), "ris"),
SILVER_PLATTER(Localization.lang("%0 file", "SilverPlatter"), "dat", "txt"),
XMP(Localization.lang("XMP-annotated PDF"), "pdf"),
AUX(Localization.lang("%0 file", "AUX"), "aux"),
JSTYLE(Localization.lang("Style file"), "jstyle"),
LAYOUT(Localization.lang("Custom layout file"), "layout"),
TERMS(Localization.lang("Protected terms file"), "terms"),
TXT(Localization.lang("%0 file", Localization.lang("Plain text")), "txt"),
CLASS(Localization.lang("%0 file", "CLASS"), "class"),
JAR(Localization.lang("%0 file", "JAR"), "jar"),
XML(Localization.lang("%0 file", "XML"), "xml"),
ZIP(Localization.lang("%0 file", "ZIP"), "zip");
private final String[] extension;
private final String description;
private FileExtensions(String description, String... extension) {
this.extension = extension;
this.description = description;
}
//Array because a) is varags and b) gets passed as varags parameter to FileExtensionNameFilter
public String[] getExtensions() {
return extension;
}
public List<String> getExtensionsAsList() {
return Arrays.asList(extension);
}
public String getDescription() {
StringJoiner sj = new StringJoiner(", ", description + " (", ")");
for (String ext : extension) {
sj.add("*." + ext);
}
return sj.toString();
}
public String getFirstExtensionWithDot() {
return "." + extension[0].trim();
}
}