From 41b4e4c32ec623868b3b9977fa06e91df0549d7d Mon Sep 17 00:00:00 2001 From: u7744550 Date: Thu, 17 Oct 2024 22:08:53 +1100 Subject: [PATCH 1/2] Rewrite handleStringData to use CompositeIdFetcher #12004 add a no-args constructor to CompositeIdFetcher.java --- .../gui/externalfiles/ImportHandler.java | 20 ++++++------------- .../logic/importer/CompositeIdFetcher.java | 4 ++++ 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/jabref/gui/externalfiles/ImportHandler.java b/src/main/java/org/jabref/gui/externalfiles/ImportHandler.java index 8e89ab5026f..ed07ab4dca0 100644 --- a/src/main/java/org/jabref/gui/externalfiles/ImportHandler.java +++ b/src/main/java/org/jabref/gui/externalfiles/ImportHandler.java @@ -25,6 +25,7 @@ import org.jabref.logic.citationkeypattern.CitationKeyGenerator; import org.jabref.logic.database.DuplicateCheck; import org.jabref.logic.externalfiles.ExternalFilesContentImporter; +import org.jabref.logic.importer.CompositeIdFetcher; import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.ImportCleanup; import org.jabref.logic.importer.ImportException; @@ -359,22 +360,13 @@ public List handleStringData(String data) throws FetcherException { return Collections.emptyList(); } - Optional doi = DOI.findInText(data); - if (doi.isPresent()) { - return fetchByDOI(doi.get()); + if (!CompositeIdFetcher.containsValidId(data)) { + return tryImportFormats(data); } - Optional arXiv = ArXivIdentifier.parse(data); - if (arXiv.isPresent()) { - return fetchByArXiv(arXiv.get()); - } - - Optional isbn = ISBN.parse(data); - if (isbn.isPresent()) { - return fetchByISBN(isbn.get()); - } - - return tryImportFormats(data); + CompositeIdFetcher compositeIdFetcher = new CompositeIdFetcher(); + Optional optional = compositeIdFetcher.performSearchById(data); + return OptionalUtil.toList(optional); } private List tryImportFormats(String data) { diff --git a/src/main/java/org/jabref/logic/importer/CompositeIdFetcher.java b/src/main/java/org/jabref/logic/importer/CompositeIdFetcher.java index 83d939a3085..a18717629fa 100644 --- a/src/main/java/org/jabref/logic/importer/CompositeIdFetcher.java +++ b/src/main/java/org/jabref/logic/importer/CompositeIdFetcher.java @@ -19,6 +19,10 @@ public CompositeIdFetcher(ImportFormatPreferences importFormatPreferences) { this.importFormatPreferences = importFormatPreferences; } + public CompositeIdFetcher() { + importFormatPreferences = null; + } + public Optional performSearchById(String identifier) throws FetcherException { Optional doi = DOI.findInText(identifier); if (doi.isPresent()) { From ce3ebb9b3fb1731e2c16bc3ad60c1a68fe7465c7 Mon Sep 17 00:00:00 2001 From: u7744550 Date: Thu, 17 Oct 2024 23:12:40 +1100 Subject: [PATCH 2/2] delete the no-args constructor. --- src/main/java/org/jabref/gui/externalfiles/ImportHandler.java | 2 +- .../java/org/jabref/logic/importer/CompositeIdFetcher.java | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/main/java/org/jabref/gui/externalfiles/ImportHandler.java b/src/main/java/org/jabref/gui/externalfiles/ImportHandler.java index ed07ab4dca0..d3b621fe16e 100644 --- a/src/main/java/org/jabref/gui/externalfiles/ImportHandler.java +++ b/src/main/java/org/jabref/gui/externalfiles/ImportHandler.java @@ -364,7 +364,7 @@ public List handleStringData(String data) throws FetcherException { return tryImportFormats(data); } - CompositeIdFetcher compositeIdFetcher = new CompositeIdFetcher(); + CompositeIdFetcher compositeIdFetcher = new CompositeIdFetcher(preferences.getImportFormatPreferences()); Optional optional = compositeIdFetcher.performSearchById(data); return OptionalUtil.toList(optional); } diff --git a/src/main/java/org/jabref/logic/importer/CompositeIdFetcher.java b/src/main/java/org/jabref/logic/importer/CompositeIdFetcher.java index a18717629fa..83d939a3085 100644 --- a/src/main/java/org/jabref/logic/importer/CompositeIdFetcher.java +++ b/src/main/java/org/jabref/logic/importer/CompositeIdFetcher.java @@ -19,10 +19,6 @@ public CompositeIdFetcher(ImportFormatPreferences importFormatPreferences) { this.importFormatPreferences = importFormatPreferences; } - public CompositeIdFetcher() { - importFormatPreferences = null; - } - public Optional performSearchById(String identifier) throws FetcherException { Optional doi = DOI.findInText(identifier); if (doi.isPresent()) {