package org.jabref.logic.integrity;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import org.jabref.model.entry.BibEntry;
import org.jabref.model.util.OptionalUtil;
public class FieldChecker implements IntegrityCheck.Checker {
protected final String field;
private final ValueChecker checker;
public FieldChecker(String field, ValueChecker checker) {
this.field = field;
this.checker = Objects.requireNonNull(checker);
}
@Override
public List<IntegrityMessage> check(BibEntry entry) {
Optional<String> value = entry.getField(field);
if (!value.isPresent()) {
return Collections.emptyList();
}
return OptionalUtil.toList(checker.checkValue(value.get()).map(message -> new IntegrityMessage(message, entry, field)));
}
}