package org.jabref.logic.autocompleter; import java.util.List; import java.util.Map; import java.util.Objects; import org.jabref.logic.journals.JournalAbbreviationLoader; import org.jabref.model.database.BibDatabase; import org.jabref.model.metadata.MetaData; public class ContentAutoCompleters extends AutoCompleters { public ContentAutoCompleters() { } public ContentAutoCompleters(BibDatabase database, MetaData metaData, AutoCompletePreferences preferences, JournalAbbreviationLoader abbreviationLoader) { Objects.requireNonNull(preferences); AutoCompleterFactory autoCompleterFactory = new AutoCompleterFactory(preferences, abbreviationLoader); List<String> completeFields = preferences.getCompleteNames(); for (String field : completeFields) { AutoCompleter<String> autoCompleter = autoCompleterFactory.getFor(field); put(field, autoCompleter); } addContentSelectorValuesToAutoCompleters(metaData); addDatabase(database); } /** * For all fields with both autocompletion and content selector, add content selector * values to the autocompleter list: */ public void addContentSelectorValuesToAutoCompleters(MetaData metaData) { for (Map.Entry<String, AutoCompleter<String>> entry : this.autoCompleters.entrySet()) { AutoCompleter<String> ac = entry.getValue(); metaData.getContentSelectorValuesForField(entry.getKey()).forEach(ac::addItemToIndex); } } }