Skip to content

Commit 5d6c2ab

Browse files
authored
Skip handling of non-present DOIs (#14367)
* Skip handling of non-present DOIs * Fix state handling in RuleBasedPlainCitationParser
1 parent 75d5d52 commit 5d6c2ab

File tree

2 files changed

+22
-17
lines changed

2 files changed

+22
-17
lines changed

jablib/src/main/java/org/jabref/logic/importer/fetcher/citation/crossref/CrossRefCitationFetcher.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,11 @@ public List<BibEntry> getReferences(BibEntry entry) throws FetcherException {
8787
return references.valueStream()
8888
.map(Unchecked.function(reference -> {
8989
String unstructured = reference.at("/unstructured").asText();
90-
String referenceDoi = reference.at("/DOI").asText();
91-
if (referenceDoi == null) {
90+
JsonNode doiNode = reference.at("/DOI");
91+
if (doiNode.isMissingNode()) {
9292
return getBibEntryFromText(parser, unstructured);
9393
} else {
94-
return getBibEntryFromDoi(referenceDoi, unstructured);
94+
return getBibEntryFromDoi(doiNode.asText(), unstructured);
9595
}
9696
}))
9797
.toList();

jablib/src/main/java/org/jabref/logic/importer/plaincitation/RuleBasedPlainCitationParser.java

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,14 @@
88
import java.util.regex.Matcher;
99
import java.util.regex.Pattern;
1010

11-
import org.jabref.logic.importer.FetcherException;
1211
import org.jabref.model.entry.BibEntry;
1312
import org.jabref.model.entry.field.StandardField;
1413
import org.jabref.model.entry.types.EntryType;
1514
import org.jabref.model.entry.types.StandardEntryType;
1615

17-
/**
18-
* Parse a plain citation using regex rules.
19-
* <p>
20-
* TODO: This class is similar to {@link org.jabref.logic.importer.fileformat.pdf.RuleBasedBibliographyPdfImporter}, we need to unify them.
21-
*/
16+
/// Parse a plain citation using regex rules.
17+
///
18+
/// TODO: This class is similar to {@link org.jabref.logic.importer.fileformat.pdf.RuleBasedBibliographyPdfImporter}, we need to unify them.
2219
public class RuleBasedPlainCitationParser implements PlainCitationParser {
2320
private static final String AUTHOR_TAG = "[author_tag]";
2421
private static final String URL_TAG = "[url_tag]";
@@ -52,16 +49,24 @@ public class RuleBasedPlainCitationParser implements PlainCitationParser {
5249
"(p.)?\\s?\\d+(-\\d+)?",
5350
Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
5451

55-
private final List<String> urls = new ArrayList<>();
56-
private final List<String> authors = new ArrayList<>();
57-
private String year = "";
58-
private String pages = "";
59-
private String title = "";
60-
private boolean isArticle = true;
61-
private String journalOrPublisher = "";
52+
private List<String> urls;
53+
private List<String> authors;
54+
private String year;
55+
private String pages;
56+
private String title;
57+
private boolean isArticle;
58+
private String journalOrPublisher;
6259

6360
@Override
64-
public Optional<BibEntry> parsePlainCitation(String text) throws FetcherException {
61+
public Optional<BibEntry> parsePlainCitation(String text) {
62+
urls = new ArrayList<>();
63+
authors = new ArrayList<>();
64+
year = "";
65+
pages = "";
66+
title = "";
67+
isArticle = true;
68+
journalOrPublisher = "";
69+
6570
String inputWithoutUrls = findUrls(text);
6671
String inputWithoutAuthors = findAuthors(inputWithoutUrls);
6772
String inputWithoutYear = findYear(inputWithoutAuthors);

0 commit comments

Comments
 (0)