From 7adb33471f3985ceb7a2cf0e80e34f8dfad444eb Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Sun, 7 Apr 2024 13:05:01 +0200 Subject: [PATCH] Rewrite --- .../gui/maintable/ExtractReferencesAction.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/jabref/gui/maintable/ExtractReferencesAction.java b/src/main/java/org/jabref/gui/maintable/ExtractReferencesAction.java index 6a422f04224..2d0277fef25 100644 --- a/src/main/java/org/jabref/gui/maintable/ExtractReferencesAction.java +++ b/src/main/java/org/jabref/gui/maintable/ExtractReferencesAction.java @@ -171,13 +171,14 @@ private void extractReferences(Iterator fileListIterator, ParserResult res } StringJoiner cites = new StringJoiner(","); - int count = 0; + // required because of "orElseGet" + var ref = new Object() { + int count = 0; + }; for (BibEntry importedEntry : result.getDatabase().getEntries()) { - count++; + ref.count++; Optional citationKey = importedEntry.getCitationKey(); - if (citationKey.isPresent()) { - cites.add(citationKey.get()); - } else { + cites.add(citationKey.orElseGet(() -> { String sourceCitationKey = currentEntry.getCitationKey().orElse("unknown"); String newCitationKey; // Could happen if no author and no year is present @@ -187,11 +188,11 @@ private void extractReferences(Iterator fileListIterator, ParserResult res if (matcher.hasMatch()) { newCitationKey = sourceCitationKey + "-" + matcher.group(1); } else { - newCitationKey = sourceCitationKey + "-" + count; + newCitationKey = sourceCitationKey + "-" + ref.count; } importedEntry.setCitationKey(newCitationKey); - cites.add(newCitationKey); - } + return newCitationKey; + })); } currentEntry.setField(StandardField.CITES, cites.toString()); }