package org.jabref.logic.integrity;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import org.jabref.logic.integrity.IntegrityCheck.Checker;
import org.jabref.logic.journals.JournalAbbreviationRepository;
import org.jabref.logic.l10n.Localization;
import org.jabref.model.entry.BibEntry;
public class JournalInAbbreviationListChecker implements Checker {
private final String field;
private final JournalAbbreviationRepository abbreviationRepository;
public JournalInAbbreviationListChecker(String field, JournalAbbreviationRepository abbreviationRepository) {
this.field = Objects.requireNonNull(field);
this.abbreviationRepository = Objects.requireNonNull(abbreviationRepository);
}
@Override
public List<IntegrityMessage> check(BibEntry entry) {
Optional<String> value = entry.getField(field);
if (!value.isPresent()) {
return Collections.emptyList();
}
final String journal = value.get();
if (!abbreviationRepository.isKnownName(journal)) {
return Collections
.singletonList(new IntegrityMessage(Localization.lang("journal not found in abbreviation list"), entry, field));
}
return Collections.emptyList();
}
}