package org.jabref.logic.layout; import java.util.HashMap; import java.util.Map; import java.util.Optional; import org.jabref.logic.journals.JournalAbbreviationLoader; import org.jabref.logic.journals.JournalAbbreviationPreferences; import org.jabref.logic.layout.format.FileLinkPreferences; import org.jabref.logic.layout.format.NameFormatterPreferences; public class LayoutFormatterPreferences { private final NameFormatterPreferences nameFormatterPreferences; private final JournalAbbreviationPreferences journalAbbreviationPreferences; private final FileLinkPreferences fileLinkPreferences; private final Map<String, String> customExportNameFormatters = new HashMap<>(); private final JournalAbbreviationLoader journalAbbreviationLoader; public LayoutFormatterPreferences(NameFormatterPreferences nameFormatterPreferences, JournalAbbreviationPreferences journalAbbreviationPreferences, FileLinkPreferences fileLinkPreferences, JournalAbbreviationLoader journalAbbreviationLoader) { this.nameFormatterPreferences = nameFormatterPreferences; this.journalAbbreviationPreferences = journalAbbreviationPreferences; this.fileLinkPreferences = fileLinkPreferences; this.journalAbbreviationLoader = journalAbbreviationLoader; } public NameFormatterPreferences getNameFormatterPreferences() { return nameFormatterPreferences; } public JournalAbbreviationPreferences getJournalAbbreviationPreferences() { return journalAbbreviationPreferences; } public FileLinkPreferences getFileLinkPreferences() { return fileLinkPreferences; } public JournalAbbreviationLoader getJournalAbbreviationLoader() { return journalAbbreviationLoader; } public void clearCustomExportNameFormatters() { customExportNameFormatters.clear(); } public void putCustomExportNameFormatter(String formatterName, String contents) { customExportNameFormatters.put(formatterName, contents); } public Optional<String> getCustomExportNameFormatter(String formatterName) { return Optional.ofNullable(customExportNameFormatters.get(formatterName)); } }