diff --git a/jabgui/src/main/java/org/jabref/gui/collab/DatabaseChangeMonitor.java b/jabgui/src/main/java/org/jabref/gui/collab/DatabaseChangeMonitor.java index a9db70abd51..3d965621b9d 100644 --- a/jabgui/src/main/java/org/jabref/gui/collab/DatabaseChangeMonitor.java +++ b/jabgui/src/main/java/org/jabref/gui/collab/DatabaseChangeMonitor.java @@ -3,6 +3,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import javax.swing.undo.UndoManager; @@ -75,10 +76,10 @@ private void notifyOnChange(List changes) { notificationPane.notify( IconTheme.JabRefIcons.SAVE.getGraphicNode(), Localization.lang("The library has been modified by another program."), - List.of(new Action(Localization.lang("Dismiss changes"), event -> notificationPane.hide()), - new Action(Localization.lang("Review changes"), event -> { + List.of(new Action(Localization.lang("Dismiss changes"), _ -> notificationPane.hide()), + new Action(Localization.lang("Review changes"), _ -> { DatabaseChangesResolverDialog databaseChangesResolverDialog = new DatabaseChangesResolverDialog(changes, database, Localization.lang("External Changes Resolver")); - var areAllChangesResolved = dialogService.showCustomDialogAndWait(databaseChangesResolverDialog); + Optional areAllChangesResolved = dialogService.showCustomDialogAndWait(databaseChangesResolverDialog); saveState = stateManager.activeTabProperty().get().get(); final NamedCompound ce = new NamedCompound(Localization.lang("Merged external changes")); changes.stream().filter(DatabaseChange::isAccepted).forEach(change -> change.applyChange(ce)); diff --git a/jabgui/src/main/java/org/jabref/gui/dialogs/BackupUIManager.java b/jabgui/src/main/java/org/jabref/gui/dialogs/BackupUIManager.java index 08dd120ab78..0df7d1c12e1 100644 --- a/jabgui/src/main/java/org/jabref/gui/dialogs/BackupUIManager.java +++ b/jabgui/src/main/java/org/jabref/gui/dialogs/BackupUIManager.java @@ -50,7 +50,7 @@ public static Optional showRestoreBackupDialog(DialogService dialo FileUpdateMonitor fileUpdateMonitor, UndoManager undoManager, StateManager stateManager) { - var actionOpt = showBackupResolverDialog( + Optional actionOpt = showBackupResolverDialog( dialogService, preferences.getExternalApplicationsPreferences(), originalPath, @@ -100,7 +100,7 @@ private static Optional showReviewBackupDialog( changes, originalDatabase, "Review Backup" ); - var allChangesResolved = dialogService.showCustomDialogAndWait(reviewBackupDialog); + Optional allChangesResolved = dialogService.showCustomDialogAndWait(reviewBackupDialog); LibraryTab saveState = stateManager.activeTabProperty().get().get(); final NamedCompound CE = new NamedCompound(Localization.lang("Merged external changes")); changes.stream().filter(DatabaseChange::isAccepted).forEach(change -> change.applyChange(CE)); diff --git a/jabgui/src/main/java/org/jabref/gui/externalfiles/ImportHandler.java b/jabgui/src/main/java/org/jabref/gui/externalfiles/ImportHandler.java index 519b72e1121..ff02eed566a 100644 --- a/jabgui/src/main/java/org/jabref/gui/externalfiles/ImportHandler.java +++ b/jabgui/src/main/java/org/jabref/gui/externalfiles/ImportHandler.java @@ -169,7 +169,7 @@ public List call() { }); } } else if (FileUtil.isBibFile(file)) { - var bibtexParserResult = contentImporter.importFromBibFile(file, fileUpdateMonitor); + ParserResult bibtexParserResult = contentImporter.importFromBibFile(file, fileUpdateMonitor); List entries = bibtexParserResult.getDatabaseContext().getEntries(); entriesToAdd.addAll(entries); boolean success = !bibtexParserResult.hasWarnings(); @@ -207,7 +207,7 @@ public List call() { } private void addResultToList(Path newFile, boolean success, String logMessage) { - var result = new ImportFilesResultItemViewModel(newFile, success, logMessage); + ImportFilesResultItemViewModel result = new ImportFilesResultItemViewModel(newFile, success, logMessage); results.add(result); } }; diff --git a/jabgui/src/main/java/org/jabref/gui/groups/GroupNodeViewModel.java b/jabgui/src/main/java/org/jabref/gui/groups/GroupNodeViewModel.java index 8fed92ce48f..40187f0be76 100644 --- a/jabgui/src/main/java/org/jabref/gui/groups/GroupNodeViewModel.java +++ b/jabgui/src/main/java/org/jabref/gui/groups/GroupNodeViewModel.java @@ -78,7 +78,7 @@ public class GroupNodeViewModel { @SuppressWarnings("FieldCanBeLocal") private final ObservableList entriesList; @SuppressWarnings("FieldCanBeLocal") - private final InvalidationListener onInvalidatedGroup = listener -> refreshGroup(); + private final InvalidationListener onInvalidatedGroup = _ -> refreshGroup(); public GroupNodeViewModel(BibDatabaseContext databaseContext, StateManager stateManager, TaskExecutor taskExecutor, GroupTreeNode groupNode, CustomLocalDragboard localDragBoard, GuiPreferences preferences) { this.databaseContext = Objects.requireNonNull(databaseContext); @@ -111,9 +111,9 @@ public GroupNodeViewModel(BibDatabaseContext databaseContext, StateManager state hasChildren = new SimpleBooleanProperty(); hasChildren.bind(Bindings.isNotEmpty(children)); - EasyBind.subscribe(preferences.getGroupsPreferences().displayGroupCountProperty(), shouldDisplay -> updateMatchedEntries()); + EasyBind.subscribe(preferences.getGroupsPreferences().displayGroupCountProperty(), _ -> updateMatchedEntries()); expandedProperty.set(groupNode.getGroup().isExpanded()); - expandedProperty.addListener((observable, oldValue, newValue) -> groupNode.getGroup().setExpanded(newValue)); + expandedProperty.addListener((_, _, newValue) -> groupNode.getGroup().setExpanded(newValue)); // Register listener // The wrapper created by the FXCollections will set a weak listener on the wrapped list. This weak listener gets garbage collected. Hence, we need to maintain a reference to this list. @@ -147,7 +147,7 @@ public List addEntriesToGroup(List entries) { // return; // user aborted operation // } - var changes = groupNode.addEntriesToGroup(entries); + List changes = groupNode.addEntriesToGroup(entries); // Update appearance of group anySelectedEntriesMatched.invalidate(); diff --git a/jabgui/src/main/java/org/jabref/gui/libraryproperties/constants/ConstantsPropertiesView.java b/jabgui/src/main/java/org/jabref/gui/libraryproperties/constants/ConstantsPropertiesView.java index f9e1008f0f2..7c295f3c276 100644 --- a/jabgui/src/main/java/org/jabref/gui/libraryproperties/constants/ConstantsPropertiesView.java +++ b/jabgui/src/main/java/org/jabref/gui/libraryproperties/constants/ConstantsPropertiesView.java @@ -60,7 +60,7 @@ public void initialize() { .install(labelColumn, new DefaultStringConverter()); labelColumn.setOnEditCommit((TableColumn.CellEditEvent cellEvent) -> { - var tableView = cellEvent.getTableView(); + TableView tableView = cellEvent.getTableView(); ConstantsItemModel cellItem = tableView.getItems() .get(cellEvent.getTablePosition().getRow()); @@ -77,7 +77,7 @@ public void initialize() { // Resort the entries based on the keys and set the focus to the newly-created entry viewModel.resortStrings(); - var selectionModel = tableView.getSelectionModel(); + TableView.TableViewSelectionModel selectionModel = tableView.getSelectionModel(); selectionModel.select(cellItem); selectionModel.focus(selectionModel.getSelectedIndex()); tableView.refresh(); @@ -97,9 +97,9 @@ public void initialize() { actionsColumn.setReorderable(false); actionsColumn.setCellValueFactory(cellData -> cellData.getValue().labelProperty()); new ValueTableCellFactory() - .withGraphic(label -> IconTheme.JabRefIcons.DELETE_ENTRY.getGraphicNode()) + .withGraphic(_ -> IconTheme.JabRefIcons.DELETE_ENTRY.getGraphicNode()) .withTooltip(label -> Localization.lang("Remove string %0", label)) - .withOnMouseClickedEvent(item -> evt -> + .withOnMouseClickedEvent(_ -> _ -> viewModel.removeString(stringsList.getFocusModel().getFocusedItem())) .install(actionsColumn); diff --git a/jabgui/src/main/java/org/jabref/gui/maintable/BibEntryTableViewModel.java b/jabgui/src/main/java/org/jabref/gui/maintable/BibEntryTableViewModel.java index 073ad411956..39c121f5b36 100644 --- a/jabgui/src/main/java/org/jabref/gui/maintable/BibEntryTableViewModel.java +++ b/jabgui/src/main/java/org/jabref/gui/maintable/BibEntryTableViewModel.java @@ -88,7 +88,7 @@ public BibEntry getEntry() { private static Binding> createMatchedGroupsBinding(BibDatabaseContext database, BibEntry entry) { return new UiThreadBinding<>(EasyBind.combine(entry.getFieldBinding(StandardField.GROUPS), database.getMetaData().groupsBinding(), - (a, b) -> + (_, _) -> database.getMetaData().getGroups().map(groupTreeNode -> groupTreeNode.getMatchingGroups(entry).stream() .map(GroupTreeNode::getGroup) @@ -119,7 +119,7 @@ public ObservableValue> getSpecialField(Spe Optional currentValue = this.entry.getField(field); if (value != null) { if (currentValue.isEmpty() && value.getValue().isEmpty()) { - var zeroValue = getField(field).flatMapOpt(fieldValue -> field.parseValue("CLEAR_RANK").map(SpecialFieldValueViewModel::new)); + OptionalBinding zeroValue = getField(field).flatMapOpt(_ -> field.parseValue("CLEAR_RANK").map(SpecialFieldValueViewModel::new)); specialFieldValues.put(field, zeroValue); return zeroValue; } else if (value.getValue().isEmpty() || !value.getValue().get().getValue().getFieldValue().equals(currentValue)) { diff --git a/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/PersonsNameFieldRowView.java b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/PersonsNameFieldRowView.java index 500cf583ed2..0fd76ddd2b7 100644 --- a/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/PersonsNameFieldRowView.java +++ b/jabgui/src/main/java/org/jabref/gui/mergeentries/newmergedialog/PersonsNameFieldRowView.java @@ -18,7 +18,7 @@ public PersonsNameFieldRowView(Field field, BibEntry leftEntry, BibEntry rightEn super(field, leftEntry, rightEntry, mergedEntry, fieldMergerFactory, preferences, rowIndex); assert field.getProperties().contains(FieldProperty.PERSON_NAMES); - var authorsParser = new AuthorListParser(); + AuthorListParser authorsParser = new AuthorListParser(); leftEntryNames = authorsParser.parse(viewModel.getLeftFieldValue()); rightEntryNames = authorsParser.parse(viewModel.getRightFieldValue()); diff --git a/jabgui/src/main/java/org/jabref/gui/openoffice/OpenOfficePanel.java b/jabgui/src/main/java/org/jabref/gui/openoffice/OpenOfficePanel.java index e439f522152..21a7d04eb97 100644 --- a/jabgui/src/main/java/org/jabref/gui/openoffice/OpenOfficePanel.java +++ b/jabgui/src/main/java/org/jabref/gui/openoffice/OpenOfficePanel.java @@ -379,7 +379,7 @@ protected List call() { } }; - taskConnectIfInstalled.setOnSucceeded(evt -> { + taskConnectIfInstalled.setOnSucceeded(_ -> { List installations = new ArrayList<>(taskConnectIfInstalled.getValue()); if (installations.isEmpty()) { officeInstallation.selectInstallationPath().ifPresent(installations::add); @@ -398,7 +398,7 @@ protected List call() { } private void connectManually() { - var fileDialogConfiguration = new DirectoryDialogConfiguration.Builder().withInitialDirectory(System.getProperty("user.home")).build(); + DirectoryDialogConfiguration fileDialogConfiguration = new DirectoryDialogConfiguration.Builder().withInitialDirectory(System.getProperty("user.home")).build(); Optional selectedPath = dialogService.showDirectorySelectionDialog(fileDialogConfiguration); DetectOpenOfficeInstallation officeInstallation = new DetectOpenOfficeInstallation(openOfficePreferences, dialogService); diff --git a/jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.java index 8bdd84d2b02..832cde6eb81 100644 --- a/jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.java +++ b/jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.java @@ -106,7 +106,7 @@ private void setupEntryTypesTable() { entryTypeActionsColumn.setReorderable(false); entryTypeActionsColumn.setCellValueFactory(cellData -> new ReadOnlyStringWrapper(cellData.getValue().entryType().get().getType().getDisplayName())); new ValueTableCellFactory() - .withGraphic((type, name) -> { + .withGraphic((type, _) -> { if (type instanceof CustomEntryTypeViewModel) { return IconTheme.JabRefIcons.DELETE_ENTRY.getGraphicNode(); } else { @@ -120,11 +120,11 @@ private void setupEntryTypesTable() { return null; } }) - .withOnMouseClickedEvent((type, name) -> { + .withOnMouseClickedEvent((type, _) -> { if (type instanceof CustomEntryTypeViewModel) { - return evt -> viewModel.removeEntryType(entryTypesTable.getSelectionModel().getSelectedItem()); + return _ -> viewModel.removeEntryType(entryTypesTable.getSelectionModel().getSelectedItem()); } else { - return evt -> { + return _ -> { }; } }) @@ -135,7 +135,7 @@ private void setupEntryTypesTable() { EasyBind.subscribe(viewModel.selectedEntryTypeProperty(), type -> { if (type != null) { - var items = type.fields(); + ObservableList items = type.fields(); fields.setItems(items); } else { fields.setItems(null); @@ -185,9 +185,9 @@ private void setupFieldsTable() { fieldTypeActionColumn.setCellValueFactory(cellData -> cellData.getValue().displayNameProperty()); new ValueTableCellFactory() - .withGraphic(item -> IconTheme.JabRefIcons.DELETE_ENTRY.getGraphicNode()) + .withGraphic(_ -> IconTheme.JabRefIcons.DELETE_ENTRY.getGraphicNode()) .withTooltip(name -> Localization.lang("Remove field %0 from currently selected entry type", name)) - .withOnMouseClickedEvent(item -> evt -> viewModel.removeField(fields.getSelectionModel().getSelectedItem())) + .withOnMouseClickedEvent(_ -> _ -> viewModel.removeField(fields.getSelectionModel().getSelectedItem())) .install(fieldTypeActionColumn); new ViewModelTableRowFactory() diff --git a/jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTabViewModel.java index 2f2b6f2183d..eab2fc87d62 100644 --- a/jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTabViewModel.java +++ b/jabgui/src/main/java/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTabViewModel.java @@ -125,7 +125,7 @@ public void storeSettings() { entryTypesManager.update(newType, bibDatabaseMode); } - for (var entryType : entryTypesToDelete) { + for (BibEntryType entryType : entryTypesToDelete) { entryTypesManager.removeCustomOrModifiedEntryType(entryType, bibDatabaseMode); } diff --git a/jabgui/src/main/java/org/jabref/gui/preview/PreviewViewer.java b/jabgui/src/main/java/org/jabref/gui/preview/PreviewViewer.java index dc9c3baf5ef..47878b19f9c 100644 --- a/jabgui/src/main/java/org/jabref/gui/preview/PreviewViewer.java +++ b/jabgui/src/main/java/org/jabref/gui/preview/PreviewViewer.java @@ -4,7 +4,7 @@ import java.io.PrintWriter; import java.io.StringWriter; import java.net.MalformedURLException; -import java.util.Arrays; +import java.util.List; import java.util.Objects; import javafx.application.Platform; @@ -57,12 +57,12 @@ public class PreviewViewer extends ScrollPane implements InvalidationListener { // https://stackoverflow.com/questions/5669448/get-selected-texts-html-in-div/5670825#5670825 private static final String JS_GET_SELECTION_HTML_SCRIPT = """ function getSelectionHtml() { - var html = ""; + let html = ""; if (typeof window.getSelection != "undefined") { - var sel = window.getSelection(); + let sel = window.getSelection(); if (sel.rangeCount) { - var container = document.createElement("div"); - for (var i = 0, len = sel.rangeCount; i < len; ++i) { + let container = document.createElement("div"); + for (let i = 0, len = sel.rangeCount; i < len; ++i) { container.appendChild(sel.getRangeAt(i).cloneContents()); } html = container.innerHTML; @@ -266,13 +266,13 @@ public void print() { public void copyPreviewHtmlToClipBoard() { Document document = previewView.getEngine().getDocument(); - ClipboardContent content = ClipboardContentGenerator.processHtml(Arrays.asList(document.getElementById("content").getTextContent())); + ClipboardContent content = ClipboardContentGenerator.processHtml(List.of(document.getElementById("content").getTextContent())); clipBoardManager.setContent(content); } public void copyPreviewTextToClipBoard() { Document document = previewView.getEngine().getDocument(); - ClipboardContent content = ClipboardContentGenerator.processText(Arrays.asList(document.getElementById("content").getTextContent())); + ClipboardContent content = ClipboardContentGenerator.processText(List.of(document.getElementById("content").getTextContent())); clipBoardManager.setContent(content); } diff --git a/jabgui/src/main/java/org/jabref/gui/util/FileFilterConverter.java b/jabgui/src/main/java/org/jabref/gui/util/FileFilterConverter.java index 08cc3b70bc4..619d656cddf 100644 --- a/jabgui/src/main/java/org/jabref/gui/util/FileFilterConverter.java +++ b/jabgui/src/main/java/org/jabref/gui/util/FileFilterConverter.java @@ -61,7 +61,7 @@ public static Optional getExporter(FileChooser.ExtensionFilter extensi } public static FileChooser.ExtensionFilter forAllImporters(SortedSet importers) { - List fileTypes = importers.stream().map(Importer::getFileType).collect(Collectors.toList()); + List fileTypes = importers.stream().map(Importer::getFileType).toList(); List flatExtensions = fileTypes.stream() .flatMap(type -> type.getExtensionsWithAsteriskAndDot().stream()) .collect(Collectors.toList()); @@ -86,7 +86,7 @@ public static FileFilter toFileFilter(FileChooser.ExtensionFilter extensionFilte } public static FileFilter toFileFilter(List extensions) { - var filter = toDirFilter(extensions); + Filter filter = toDirFilter(extensions); return file -> { try { return filter.accept(file.toPath()); @@ -100,10 +100,10 @@ public static Filter toDirFilter(List extensions) { List extensionsCleaned = extensions.stream() .map(extension -> extension.replace(".", "").replace("*", "")) .filter(StringUtil::isNotBlank) - .collect(Collectors.toList()); + .toList(); if (extensionsCleaned.isEmpty()) { // Except every file - return path -> true; + return _ -> true; } else { return path -> FileUtil.getFileExtension(path) .map(extensionsCleaned::contains) diff --git a/jabgui/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerTest.java b/jabgui/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerTest.java index ac2d024d62e..5189cc1c0b7 100644 --- a/jabgui/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerTest.java +++ b/jabgui/src/test/java/org/jabref/gui/autosaveandbackup/BackupManagerTest.java @@ -131,27 +131,27 @@ void bakFileWithOlderTimeStampDoesNotLeadToDiff() throws URISyntaxException, IOE } @Test - void shouldNotCreateABackup(@TempDir Path customDir) throws URISyntaxException, IOException { + void shouldNotCreateABackup(@TempDir Path customDir) throws IOException { Path backupDir = customDir.resolve("subBackupDir"); Files.createDirectories(backupDir); - var database = new BibDatabaseContext(new BibDatabase()); - database.setDatabasePath(customDir.resolve("Bibfile.bib")); + BibDatabaseContext databaseContext = new BibDatabaseContext(new BibDatabase()); + databaseContext.setDatabasePath(customDir.resolve("Bibfile.bib")); - var preferences = mock(CliPreferences.class, Answers.RETURNS_DEEP_STUBS); - var filePreferences = mock(FilePreferences.class); + CliPreferences preferences = mock(CliPreferences.class, Answers.RETURNS_DEEP_STUBS); + FilePreferences filePreferences = mock(FilePreferences.class); when(preferences.getFilePreferences()).thenReturn(filePreferences); when(filePreferences.getBackupDirectory()).thenReturn(backupDir); when(filePreferences.shouldCreateBackup()).thenReturn(false); BackupManager manager = BackupManager.start( mock(LibraryTab.class), - database, + databaseContext, mock(BibEntryTypesManager.class, Answers.RETURNS_DEEP_STUBS), preferences); manager.listen(new MetaDataChangedEvent(new MetaData())); - BackupManager.shutdown(database, filePreferences.getBackupDirectory(), filePreferences.shouldCreateBackup()); + BackupManager.shutdown(databaseContext, filePreferences.getBackupDirectory(), filePreferences.shouldCreateBackup()); List files = Files.list(backupDir).toList(); assertEquals(List.of(), files); @@ -162,18 +162,18 @@ void shouldCreateABackup(@TempDir Path customDir) throws IOException { Path backupDir = customDir.resolve("subBackupDir"); Files.createDirectories(backupDir); - var database = new BibDatabaseContext(new BibDatabase()); - database.setDatabasePath(customDir.resolve("Bibfile.bib")); + BibDatabaseContext databaseContext = new BibDatabaseContext(new BibDatabase()); + databaseContext.setDatabasePath(customDir.resolve("Bibfile.bib")); - var preferences = mock(CliPreferences.class, Answers.RETURNS_DEEP_STUBS); - var filePreferences = mock(FilePreferences.class); + CliPreferences preferences = mock(CliPreferences.class, Answers.RETURNS_DEEP_STUBS); + FilePreferences filePreferences = mock(FilePreferences.class); when(preferences.getFilePreferences()).thenReturn(filePreferences); when(filePreferences.getBackupDirectory()).thenReturn(backupDir); when(filePreferences.shouldCreateBackup()).thenReturn(true); BackupManager manager = BackupManager.start( mock(LibraryTab.class), - database, + databaseContext, mock(BibEntryTypesManager.class, Answers.RETURNS_DEEP_STUBS), preferences); manager.listen(new MetaDataChangedEvent(new MetaData())); @@ -182,7 +182,7 @@ void shouldCreateABackup(@TempDir Path customDir) throws IOException { fullBackupPath.ifPresent(manager::performBackup); manager.listen(new GroupUpdatedEvent(new MetaData())); - BackupManager.shutdown(database, backupDir, true); + BackupManager.shutdown(databaseContext, backupDir, true); List files = Files.list(backupDir).sorted().toList(); // we only know the first backup path because the second one is created on shutdown diff --git a/jabgui/src/test/java/org/jabref/gui/entryeditor/SciteTabTest.java b/jabgui/src/test/java/org/jabref/gui/entryeditor/SciteTabTest.java index 6b47fd1ff9d..876893ea50c 100644 --- a/jabgui/src/test/java/org/jabref/gui/entryeditor/SciteTabTest.java +++ b/jabgui/src/test/java/org/jabref/gui/entryeditor/SciteTabTest.java @@ -46,21 +46,21 @@ void name() { @Test void shouldShow() { - var tab = new SciteTab(preferences, taskExecutor, dialogService); + SciteTab tab = new SciteTab(preferences, taskExecutor, dialogService); boolean shouldShow = tab.shouldShow(null); assertTrue(shouldShow); } @Test void bindNullEntry() { - var tab = new SciteTab(preferences, taskExecutor, dialogService); + SciteTab tab = new SciteTab(preferences, taskExecutor, dialogService); tab.bindToEntry(null); } @Test void bindEntry() { - var tab = new SciteTab(preferences, taskExecutor, dialogService); - var entry = new BibEntry() + SciteTab tab = new SciteTab(preferences, taskExecutor, dialogService); + BibEntry entry = new BibEntry() .withField(StandardField.DOI, SAMPLE_DOI); tab.bindToEntry(entry); diff --git a/jabgui/src/test/java/org/jabref/gui/entryeditor/SciteTabViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/entryeditor/SciteTabViewModelTest.java index 4c2b48df087..97daa55d6a3 100644 --- a/jabgui/src/test/java/org/jabref/gui/entryeditor/SciteTabViewModelTest.java +++ b/jabgui/src/test/java/org/jabref/gui/entryeditor/SciteTabViewModelTest.java @@ -44,7 +44,7 @@ void sciteTallyDTO() { jsonObject.put("citingPublications", 6); jsonObject.put("doi", "test_doi"); - var dto = SciteTallyModel.fromJSONObject(jsonObject); + SciteTallyModel dto = SciteTallyModel.fromJSONObject(jsonObject); assertEquals(1, dto.total()); assertEquals(2, dto.supporting()); @@ -57,9 +57,9 @@ void sciteTallyDTO() { @Test void fetchTallies() throws FetcherException { - var viewModel = new SciteTabViewModel(preferences, taskExecutor); + SciteTabViewModel viewModel = new SciteTabViewModel(preferences, taskExecutor); DOI doi = new DOI(SciteTabTest.SAMPLE_DOI); - var actual = DOI.parse(viewModel.fetchTallies(doi).doi()); + Optional actual = DOI.parse(viewModel.fetchTallies(doi).doi()); assertEquals(Optional.of(doi), actual); } } diff --git a/jabgui/src/test/java/org/jabref/gui/entryeditor/citationrelationtab/CitationsRelationsTabViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/entryeditor/citationrelationtab/CitationsRelationsTabViewModelTest.java index b82c1d0347c..b34b06c25a0 100644 --- a/jabgui/src/test/java/org/jabref/gui/entryeditor/citationrelationtab/CitationsRelationsTabViewModelTest.java +++ b/jabgui/src/test/java/org/jabref/gui/entryeditor/citationrelationtab/CitationsRelationsTabViewModelTest.java @@ -9,7 +9,6 @@ import org.jabref.gui.DialogService; import org.jabref.gui.StateManager; -import org.jabref.gui.externalfiles.ImportHandler; import org.jabref.gui.preferences.GuiPreferences; import org.jabref.logic.FilePreferences; import org.jabref.logic.bibtex.FieldPreferences; @@ -42,9 +41,7 @@ import static org.mockito.Mockito.when; class CitationsRelationsTabViewModelTest { - private ImportHandler importHandler; private BibDatabaseContext bibDatabaseContext; - private BibEntry testEntry; @Mock private GuiPreferences preferences; @@ -110,7 +107,7 @@ void setUp() { @Test void existingEntryCitesOtherPaperWithCitationKeys() { - var citationItems = List.of( + List citationItems = List.of( new CitationRelationItem(firstEntryToImport, false), new CitationRelationItem(secondEntryToImport, false)); @@ -122,7 +119,7 @@ void existingEntryCitesOtherPaperWithCitationKeys() { @Test void importedEntriesWithExistingCitationKeysCiteExistingEntry() { - var citationItems = List.of( + List citationItems = List.of( new CitationRelationItem(firstEntryToImport, false), new CitationRelationItem(secondEntryToImport, false)); @@ -140,7 +137,7 @@ void importedEntriesWithExistingCitationKeysCiteExistingEntry() { @Test void existingEntryCitesOtherPaperWithCitationKeysAndExistingCiteField() { existingEntry.setField(StandardField.CITES, "Asdf1222"); - var citationItems = List.of( + List citationItems = List.of( new CitationRelationItem(firstEntryToImport, false), new CitationRelationItem(secondEntryToImport, false)); diff --git a/jabgui/src/test/java/org/jabref/gui/groups/GroupDialogViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/groups/GroupDialogViewModelTest.java index 2b184888126..f1a5120090a 100644 --- a/jabgui/src/test/java/org/jabref/gui/groups/GroupDialogViewModelTest.java +++ b/jabgui/src/test/java/org/jabref/gui/groups/GroupDialogViewModelTest.java @@ -59,7 +59,7 @@ void setUp(@TempDir Path temporaryFolder) { @Test void validateExistingAbsolutePath() throws IOException { - var anAuxFile = temporaryFolder.resolve("auxfile.aux").toAbsolutePath(); + Path anAuxFile = temporaryFolder.resolve("auxfile.aux").toAbsolutePath(); Files.createFile(anAuxFile); when(metaData.getLatexFileDirectory(any(String.class))).thenReturn(Optional.of(temporaryFolder)); @@ -70,14 +70,14 @@ void validateExistingAbsolutePath() throws IOException { @Test void validateNonExistingAbsolutePath() { - var notAnAuxFile = temporaryFolder.resolve("notanauxfile.aux").toAbsolutePath(); + Path notAnAuxFile = temporaryFolder.resolve("notanauxfile.aux").toAbsolutePath(); viewModel.texGroupFilePathProperty().setValue(notAnAuxFile.toString()); assertFalse(viewModel.texGroupFilePathValidatonStatus().isValid()); } @Test void validateExistingRelativePath() throws IOException { - var anAuxFile = Path.of("auxfile.aux"); + Path anAuxFile = Path.of("auxfile.aux"); // The file needs to exist Files.createFile(temporaryFolder.resolve(anAuxFile)); diff --git a/jabgui/src/test/java/org/jabref/gui/libraryproperties/constants/ConstantsPropertiesViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/libraryproperties/constants/ConstantsPropertiesViewModelTest.java index bbff19660a8..f914a5f9468 100644 --- a/jabgui/src/test/java/org/jabref/gui/libraryproperties/constants/ConstantsPropertiesViewModelTest.java +++ b/jabgui/src/test/java/org/jabref/gui/libraryproperties/constants/ConstantsPropertiesViewModelTest.java @@ -2,6 +2,7 @@ import java.util.List; +import javafx.beans.property.ListProperty; import javafx.beans.property.StringProperty; import org.jabref.gui.DialogService; @@ -17,8 +18,8 @@ class ConstantsPropertiesViewModelTest { - private DialogService service = mock(DialogService.class); - private ExternalApplicationsPreferences externalApplicationsPreferences = mock(ExternalApplicationsPreferences.class); + private final DialogService service = mock(DialogService.class); + private final ExternalApplicationsPreferences externalApplicationsPreferences = mock(ExternalApplicationsPreferences.class); /** * Check that the list of strings is sorted according to their keys @@ -53,7 +54,7 @@ void stringsListPropertyResorting() { List expected = List.of("ICSE", "TSE"); ConstantsPropertiesViewModel model = new ConstantsPropertiesViewModel(context, service, externalApplicationsPreferences); - var stringsList = model.stringsListProperty(); + ListProperty stringsList = model.stringsListProperty(); stringsList.add(new ConstantsItemModel("TSE", "Transactions on Software Engineering")); stringsList.add(new ConstantsItemModel("ICSE", "International Conference on Software Engineering")); @@ -74,7 +75,7 @@ void storeSettingsWithStringConstantTest() { ConstantsPropertiesViewModel model = new ConstantsPropertiesViewModel(context, service, externalApplicationsPreferences); - var stringsList = model.stringsListProperty(); + ListProperty stringsList = model.stringsListProperty(); stringsList.add(new ConstantsItemModel("KTH", "Royal Institute of Technology")); model.storeSettings(); diff --git a/jabgui/src/test/java/org/jabref/gui/mergeentries/FieldRowViewModelTest.java b/jabgui/src/test/java/org/jabref/gui/mergeentries/FieldRowViewModelTest.java index 712897b3db4..8669990d4d7 100644 --- a/jabgui/src/test/java/org/jabref/gui/mergeentries/FieldRowViewModelTest.java +++ b/jabgui/src/test/java/org/jabref/gui/mergeentries/FieldRowViewModelTest.java @@ -11,7 +11,6 @@ import org.jabref.model.entry.field.StandardField; import org.jabref.model.entry.types.StandardEntryType; -import org.jbibtex.ParseException; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -37,7 +36,7 @@ public class FieldRowViewModelTest { BibEntryPreferences bibEntryPreferences = mock(BibEntryPreferences.class); @BeforeEach - void setup() throws ParseException { + void setup() { leftEntry = new BibEntry(StandardEntryType.Article) .withCitationKey("LajnDiezScheinEtAl2012") .withField(StandardField.AUTHOR, "Lajn, A and Diez, T and Schein, F and Frenzel, H and von Wenckstern, H and Grundmann, M") @@ -79,36 +78,36 @@ void setup() throws ParseException { @Test void selectNonEmptyValueShouldSelectLeftFieldValueIfItIsNotEmpty() { - var numberFieldViewModel = createViewModelForField(StandardField.NUMBER); + FieldRowViewModel numberFieldViewModel = createViewModelForField(StandardField.NUMBER); numberFieldViewModel.selectNonEmptyValue(); assertEquals(FieldRowViewModel.Selection.LEFT, numberFieldViewModel.getSelection()); - var authorFieldViewModel = createViewModelForField(StandardField.AUTHOR); + FieldRowViewModel authorFieldViewModel = createViewModelForField(StandardField.AUTHOR); authorFieldViewModel.selectNonEmptyValue(); assertEquals(FieldRowViewModel.Selection.LEFT, authorFieldViewModel.getSelection()); } @Test void selectNonEmptyValueShouldSelectRightFieldValueIfLeftValueIsEmpty() { - var monthFieldViewModel = createViewModelForField(StandardField.MONTH); + FieldRowViewModel monthFieldViewModel = createViewModelForField(StandardField.MONTH); monthFieldViewModel.selectNonEmptyValue(); assertEquals(FieldRowViewModel.Selection.RIGHT, monthFieldViewModel.getSelection()); - var addressFieldViewModel = createViewModelForField(StandardField.ADDRESS); + FieldRowViewModel addressFieldViewModel = createViewModelForField(StandardField.ADDRESS); addressFieldViewModel.selectNonEmptyValue(); assertEquals(FieldRowViewModel.Selection.RIGHT, addressFieldViewModel.getSelection()); } @Test void hasEqualLeftAndRightValuesShouldReturnFalseIfOneOfTheValuesIsEmpty() { - var monthFieldViewModel = createViewModelForField(StandardField.MONTH); + FieldRowViewModel monthFieldViewModel = createViewModelForField(StandardField.MONTH); monthFieldViewModel.selectNonEmptyValue(); assertFalse(monthFieldViewModel.hasEqualLeftAndRightValues()); } @Test void hasEqualLeftAndRightValuesShouldReturnTrueIfLeftAndRightAreEqual() { - var yearFieldViewModel = createViewModelForField(StandardField.YEAR); + FieldRowViewModel yearFieldViewModel = createViewModelForField(StandardField.YEAR); yearFieldViewModel.selectNonEmptyValue(); assertTrue(yearFieldViewModel.hasEqualLeftAndRightValues()); } @@ -122,7 +121,7 @@ void hasEqualLeftAndRightValuesShouldReturnTrueIfKeywordsAreEqual() { @Test void selectLeftValueShouldBeCorrect() { - var monthFieldViewModel = createViewModelForField(StandardField.MONTH); + FieldRowViewModel monthFieldViewModel = createViewModelForField(StandardField.MONTH); monthFieldViewModel.selectLeftValue(); assertEquals(FieldRowViewModel.Selection.LEFT, monthFieldViewModel.getSelection()); assertEquals(Optional.of(""), Optional.ofNullable(monthFieldViewModel.getMergedFieldValue())); @@ -135,7 +134,7 @@ void selectLeftValueShouldBeCorrect() { @Test void selectRightValueShouldBeCorrect() { - var monthFieldViewModel = createViewModelForField(StandardField.MONTH); + FieldRowViewModel monthFieldViewModel = createViewModelForField(StandardField.MONTH); monthFieldViewModel.selectRightValue(); assertEquals(FieldRowViewModel.Selection.RIGHT, monthFieldViewModel.getSelection()); assertEquals(rightEntry.getField(StandardField.MONTH), Optional.of(monthFieldViewModel.getMergedFieldValue())); @@ -148,45 +147,45 @@ void selectRightValueShouldBeCorrect() { @Test void isFieldsMergedShouldReturnTrueIfLeftAndRightValuesAreEqual() { - var yearFieldViewModel = createViewModelForField(StandardField.YEAR); + FieldRowViewModel yearFieldViewModel = createViewModelForField(StandardField.YEAR); assertTrue(yearFieldViewModel.isFieldsMerged()); } @Test void isFieldsMergedShouldReturnFalseIfLeftAndRightValuesAreNotEqual() { - var monthFieldViewModel = createViewModelForField(StandardField.MONTH); + FieldRowViewModel monthFieldViewModel = createViewModelForField(StandardField.MONTH); assertFalse(monthFieldViewModel.isFieldsMerged()); - var addressFieldViewModel = createViewModelForField(StandardField.ADDRESS); + FieldRowViewModel addressFieldViewModel = createViewModelForField(StandardField.ADDRESS); assertFalse(addressFieldViewModel.isFieldsMerged()); - var authorFieldViewModel = createViewModelForField(StandardField.AUTHOR); + FieldRowViewModel authorFieldViewModel = createViewModelForField(StandardField.AUTHOR); assertFalse(authorFieldViewModel.isFieldsMerged()); } @Test void mergeFieldsShouldResultInLeftAndRightValuesBeingEqual() { - var groupsField = createViewModelForField(StandardField.GROUPS); + FieldRowViewModel groupsField = createViewModelForField(StandardField.GROUPS); groupsField.mergeFields(); assertEquals(groupsField.getLeftFieldValue(), groupsField.getRightFieldValue()); } @Test void mergeFieldsShouldBeCorrectEvenWhenOnOfTheValuesIsEmpty() { - var keywordsField = createViewModelForField(StandardField.KEYWORDS); + FieldRowViewModel keywordsField = createViewModelForField(StandardField.KEYWORDS); keywordsField.mergeFields(); assertEquals(keywordsField.getLeftFieldValue(), keywordsField.getRightFieldValue()); } @Test void mergeFieldsShouldThrowUnsupportedOperationExceptionIfTheGivenFieldCanBeMerged() { - var authorField = createViewModelForField(StandardField.AUTHOR); + FieldRowViewModel authorField = createViewModelForField(StandardField.AUTHOR); assertThrows(UnsupportedOperationException.class, authorField::mergeFields); } @Test void mergeFieldsShouldSelectLeftFieldValue() { - var groupsField = createViewModelForField(StandardField.GROUPS); + FieldRowViewModel groupsField = createViewModelForField(StandardField.GROUPS); groupsField.mergeFields(); assertEquals(FieldRowViewModel.Selection.LEFT, groupsField.getSelection()); @@ -194,9 +193,9 @@ void mergeFieldsShouldSelectLeftFieldValue() { @Test void unmergeFieldsShouldBeCorrect() { - var groupsField = createViewModelForField(StandardField.GROUPS); - var oldLeftGroups = groupsField.getLeftFieldValue(); - var oldRightGroups = groupsField.getRightFieldValue(); + FieldRowViewModel groupsField = createViewModelForField(StandardField.GROUPS); + String oldLeftGroups = groupsField.getLeftFieldValue(); + String oldRightGroups = groupsField.getRightFieldValue(); groupsField.mergeFields(); groupsField.unmergeFields(); @@ -206,9 +205,9 @@ void unmergeFieldsShouldBeCorrect() { @Test void unmergeFieldsShouldDoNothingIfFieldsAreNotMerged() { - var groupsField = createViewModelForField(StandardField.GROUPS); - var oldLeftGroups = groupsField.getLeftFieldValue(); - var oldRightGroups = groupsField.getRightFieldValue(); + FieldRowViewModel groupsField = createViewModelForField(StandardField.GROUPS); + String oldLeftGroups = groupsField.getLeftFieldValue(); + String oldRightGroups = groupsField.getRightFieldValue(); groupsField.unmergeFields(); assertEquals(oldLeftGroups, groupsField.getLeftFieldValue()); diff --git a/jabgui/src/test/java/org/jabref/gui/search/GlobalSearchBarTest.java b/jabgui/src/test/java/org/jabref/gui/search/GlobalSearchBarTest.java index aea7d34f19a..52a6c48ec30 100644 --- a/jabgui/src/test/java/org/jabref/gui/search/GlobalSearchBarTest.java +++ b/jabgui/src/test/java/org/jabref/gui/search/GlobalSearchBarTest.java @@ -24,6 +24,7 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Answers; import org.testfx.api.FxRobot; +import org.testfx.api.FxRobotInterface; import org.testfx.framework.junit5.ApplicationExtension; import org.testfx.framework.junit5.Start; @@ -81,7 +82,7 @@ void recordingSearchQueriesOnFocusLostOnly(FxRobot robot) throws InterruptedExce TextInputControl searchField = robot.lookup("#searchField").queryTextInputControl(); // The focus is on searchField node, as we click on the search box - var searchFieldRoboto = robot.clickOn(searchField); + FxRobotInterface searchFieldRoboto = robot.clickOn(searchField); for (char c : searchQuery.toCharArray()) { searchFieldRoboto.write(String.valueOf(c)); Thread.sleep(401); @@ -101,7 +102,7 @@ void emptyQueryIsNotRecorded(FxRobot robot) { String searchQuery = ""; TextInputControl searchField = robot.lookup("#searchField").queryTextInputControl(); - var searchFieldRoboto = robot.clickOn(searchField); + FxRobotInterface searchFieldRoboto = robot.clickOn(searchField); searchFieldRoboto.write(searchQuery); UiTaskExecutor.runAndWaitInJavaFXThread(hBox::requestFocus); diff --git a/jablib/src/main/java/org/jabref/generators/LtwaListMvGenerator.java b/jablib/src/main/java/org/jabref/generators/LtwaListMvGenerator.java index 827f94cf55a..ccdefcd6ebe 100644 --- a/jablib/src/main/java/org/jabref/generators/LtwaListMvGenerator.java +++ b/jablib/src/main/java/org/jabref/generators/LtwaListMvGenerator.java @@ -1,6 +1,7 @@ package org.jabref.generators; import java.io.IOException; +import java.io.InputStream; import java.net.URI; import java.net.URISyntaxException; import java.nio.file.Files; @@ -56,13 +57,13 @@ public static void main(String[] args) { */ private static Path downloadLtwaFile() throws IOException, URISyntaxException { LOGGER.info("Downloading LTWA file from {}.", LtwaListMvGenerator.LTWA_URL); - var in = new URI(LTWA_URL).toURL().openStream(); - var path = Files.writeString( + InputStream inputStream = new URI(LTWA_URL).toURL().openStream(); + Path path = Files.writeString( Files.createTempFile("ltwa", ".csv"), - new String(in.readAllBytes()), + new String(inputStream.readAllBytes()), StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING); - in.close(); + inputStream.close(); return path; } @@ -95,12 +96,12 @@ private static void generateMvStore(Path inputFile, Path outputFile) throws IOEx .ifPresent(word -> { if (word.startsWith("-")) { String key = word.substring(1); - suffixMap.computeIfAbsent(key, k -> + suffixMap.computeIfAbsent(key, _ -> Stream.builder().build().collect(Collectors.toList()) ).add(entry); } else { String key = word.endsWith("-") ? word.substring(0, word.length() - 1) : word; - prefixMap.computeIfAbsent(key, k -> + prefixMap.computeIfAbsent(key, _ -> Stream.builder().build().collect(Collectors.toList()) ).add(entry); } diff --git a/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/CleanupUrlFormatter.java b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/CleanupUrlFormatter.java index d14596de208..89a947a311c 100644 --- a/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/CleanupUrlFormatter.java +++ b/jablib/src/main/java/org/jabref/logic/formatter/bibtexfields/CleanupUrlFormatter.java @@ -49,7 +49,7 @@ public String getKey() { */ @Override public String format(String url) { - var toDecode = Objects + String toDecode = Objects .requireNonNull(url, "Null url") .replaceAll("\\+", "%2b"); Matcher matcher = PATTERN_URL.matcher(toDecode); diff --git a/jablib/src/main/java/org/jabref/logic/importer/fetcher/ISIDOREFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/ISIDOREFetcher.java index 58cb2f66d77..b4ec8f55206 100644 --- a/jablib/src/main/java/org/jabref/logic/importer/fetcher/ISIDOREFetcher.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/ISIDOREFetcher.java @@ -68,7 +68,7 @@ public Parser getParser() { } pushbackInputStream.unread(data); - DocumentBuilder builder = this.DOCUMENT_BUILDER_FACTORY.newDocumentBuilder(); + DocumentBuilder builder = DOCUMENT_BUILDER_FACTORY.newDocumentBuilder(); Document document = builder.parse(pushbackInputStream); // Assuming the root element represents an entry @@ -115,12 +115,12 @@ public URL getURLForQuery(QueryNode luceneQuery, int pageNumber) throws URISynta } private List parseXMl(Element element) { - var list = element.getElementsByTagName("isidore"); + NodeList list = element.getElementsByTagName("isidore"); List bibEntryList = new ArrayList<>(); for (int i = 0; i < list.getLength(); i++) { Element elem = (Element) list.item(i); - var bibEntry = xmlItemToBibEntry(elem); + BibEntry bibEntry = xmlItemToBibEntry(elem); bibEntryList.add(bibEntry); } return bibEntryList; diff --git a/jablib/src/main/java/org/jabref/logic/importer/fetcher/MathSciNet.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/MathSciNet.java index 9ed293c9378..16428c7d9c0 100644 --- a/jablib/src/main/java/org/jabref/logic/importer/fetcher/MathSciNet.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/MathSciNet.java @@ -19,7 +19,6 @@ import org.jabref.logic.cleanup.MoveFieldCleanup; import org.jabref.logic.formatter.bibtexfields.ClearFormatter; import org.jabref.logic.importer.EntryBasedParserFetcher; -import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.IdBasedParserFetcher; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.logic.importer.ParseException; @@ -77,7 +76,7 @@ public String getName() { * without subscription and, moreover, is optimized for finding a publication based on partial information. */ @Override - public URL getURLForEntry(BibEntry entry) throws URISyntaxException, MalformedURLException, FetcherException { + public URL getURLForEntry(BibEntry entry) throws URISyntaxException, MalformedURLException { Optional mrNumberInEntry = entry.getField(StandardField.MR_NUMBER); if (mrNumberInEntry.isPresent()) { // We are lucky and already know the id, so use it instead @@ -135,7 +134,7 @@ public Parser getParser() { } } } else { - var element = node.getObject(); + JSONObject element = node.getObject(); if (element.has("all")) { JSONArray entriesArray = element.getJSONObject("all").getJSONArray("results"); diff --git a/jablib/src/main/java/org/jabref/logic/importer/fetcher/SemanticScholar.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/SemanticScholar.java index d5bb1f66178..41afcbbf225 100644 --- a/jablib/src/main/java/org/jabref/logic/importer/fetcher/SemanticScholar.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/SemanticScholar.java @@ -34,8 +34,10 @@ import kong.unirest.core.json.JSONObject; import org.apache.hc.core5.net.URIBuilder; import org.apache.lucene.queryparser.flexible.core.nodes.QueryNode; +import org.jsoup.Connection; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -73,11 +75,11 @@ public Optional findFullText(BibEntry entry) throws IOException, FetcherExc try { // Retrieve PDF link String source = SOURCE_ID_SEARCH + doi.get().asString(); - var jsoupRequest = Jsoup.connect(getURLBySource(source)) - .userAgent(URLDownload.USER_AGENT) - .header("Accept", "text/html; charset=utf-8") - .referrer("https://www.google.com") - .ignoreHttpErrors(true); + Connection jsoupRequest = Jsoup.connect(getURLBySource(source)) + .userAgent(URLDownload.USER_AGENT) + .header("Accept", "text/html; charset=utf-8") + .referrer("https://www.google.com") + .ignoreHttpErrors(true); importerPreferences.getApiKey(getName()).ifPresent( key -> jsoupRequest.header("x-api-key", key)); html = jsoupRequest.get(); @@ -92,7 +94,7 @@ public Optional findFullText(BibEntry entry) throws IOException, FetcherExc arXivString = "arXiv:" + arXivString; } String source = SOURCE_ID_SEARCH + arXivString; - var jsoupRequest = Jsoup.connect(getURLBySource(source)) + Connection jsoupRequest = Jsoup.connect(getURLBySource(source)) .userAgent(URLDownload.USER_AGENT) .referrer("https://www.google.com") .header("Accept", "text/html; charset=utf-8") @@ -105,7 +107,7 @@ public Optional findFullText(BibEntry entry) throws IOException, FetcherExc return Optional.empty(); } - var metaTag = html.selectFirst("meta[name=citation_pdf_url]"); + Element metaTag = html.selectFirst("meta[name=citation_pdf_url]"); if (metaTag == null) { return Optional.empty(); } diff --git a/jablib/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/DoiToBibtexConverterComIsbnFetcher.java b/jablib/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/DoiToBibtexConverterComIsbnFetcher.java index 550de7bd044..2f729ea5fc9 100644 --- a/jablib/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/DoiToBibtexConverterComIsbnFetcher.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fetcher/isbntobibtex/DoiToBibtexConverterComIsbnFetcher.java @@ -73,7 +73,7 @@ public void doPostCleanup(BibEntry entry) { private BibEntry jsonItemToBibEntry(JSONObject item) throws ParseException { try { JSONArray data = item.optJSONArray("data"); - var type = getElementFromJSONArrayByKey(data, "type"); + String type = getElementFromJSONArrayByKey(data, "type"); BibEntry entry = new BibEntry(evaluateBibEntryTypeFromString(type)); entry.setField(StandardField.AUTHOR, getElementFromJSONArrayByKey(data, "author")); diff --git a/jablib/src/main/java/org/jabref/logic/importer/fileformat/BibtexImporter.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/BibtexImporter.java index 769e364734b..28a93e64852 100644 --- a/jablib/src/main/java/org/jabref/logic/importer/fileformat/BibtexImporter.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fileformat/BibtexImporter.java @@ -157,7 +157,7 @@ private static Optional getSuppliedEncoding(BufferedReader reader) { while ((line = reader.readLine()) != null) { line = line.trim(); // % = char 37, we might have some bom chars in front that we need to skip, so we use index of - var percentPos = line.indexOf('%', 0); + int percentPos = line.indexOf('%'); // Line does not start with %, so there are no comment lines for us and we can stop parsing if (percentPos == -1) { return Optional.empty(); diff --git a/jablib/src/main/java/org/jabref/logic/importer/fileformat/BibtexParser.java b/jablib/src/main/java/org/jabref/logic/importer/fileformat/BibtexParser.java index 23d85ad507a..da0f76998dd 100644 --- a/jablib/src/main/java/org/jabref/logic/importer/fileformat/BibtexParser.java +++ b/jablib/src/main/java/org/jabref/logic/importer/fileformat/BibtexParser.java @@ -267,12 +267,13 @@ private ParserResult parseFileContent() throws IOException { importFormatPreferences.bibEntryPreferences().getKeywordSeparator()); if (bibDeskGroupTreeNode != null) { metaData.getGroups().ifPresentOrElse(existingGroupTree -> { - var existingGroups = meta.get(MetaData.GROUPSTREE); + String existingGroups = meta.get(MetaData.GROUPSTREE); // We only have one Group BibDeskGroup with n children // instead of iterating through the whole group structure every time we just search in the metadata for the group name - var groupsToAdd = bibDeskGroupTreeNode.getChildren() - .stream(). - filter(Predicate.not(groupTreeNode -> existingGroups.contains(GROUP_TYPE_SUFFIX + groupTreeNode.getName() + GROUP_QUOTE_CHAR))); + List groupsToAdd = bibDeskGroupTreeNode.getChildren() + .stream() + .filter(Predicate.not(groupTreeNode -> existingGroups.contains(GROUP_TYPE_SUFFIX + groupTreeNode.getName() + GROUP_QUOTE_CHAR))) + .toList(); groupsToAdd.forEach(existingGroupTree::moveTo); }, // metadata does not contain any groups, so we need to create an AllEntriesGroup and add the other groups as children @@ -435,7 +436,7 @@ private void parseBibDeskComment(String comment, Map meta) throw for (int j = 0; j < keyList.getLength(); j++) { if (keyList.item(j).getTextContent().matches("group name")) { groupName = stringList.item(j).getTextContent(); - var staticGroup = new ExplicitGroup(groupName, GroupHierarchyType.INDEPENDENT, importFormatPreferences.bibEntryPreferences().getKeywordSeparator()); + ExplicitGroup staticGroup = new ExplicitGroup(groupName, GroupHierarchyType.INDEPENDENT, importFormatPreferences.bibEntryPreferences().getKeywordSeparator()); bibDeskGroupTreeNode.addSubgroup(staticGroup); } else if (keyList.item(j).getTextContent().matches("keys")) { citationKeys = stringList.item(j).getTextContent(); // adds group entries @@ -752,7 +753,7 @@ private void parseField(BibEntry entry) throws IOException { entry.addFile(file); } else if (plist.containsKey("$objects") && plist.objectForKey("$objects") instanceof NSArray nsArray) { if (nsArray.getArray().length > INDEX_RELATIVE_PATH_IN_PLIST) { - var relativePath = (NSString) nsArray.objectAtIndex(INDEX_RELATIVE_PATH_IN_PLIST); + NSString relativePath = (NSString) nsArray.objectAtIndex(INDEX_RELATIVE_PATH_IN_PLIST); Path path = Path.of(relativePath.getContent()); LinkedFile file = new LinkedFile("", path, ""); diff --git a/jablib/src/main/java/org/jabref/logic/l10n/Localization.java b/jablib/src/main/java/org/jabref/logic/l10n/Localization.java index 58b545e353e..8e2d3d789c8 100644 --- a/jablib/src/main/java/org/jabref/logic/l10n/Localization.java +++ b/jablib/src/main/java/org/jabref/logic/l10n/Localization.java @@ -52,7 +52,7 @@ public static String lang(String key, Object... params) { System.err.println("Messages are not initialized before accessing key: " + key); setLanguage(Language.ENGLISH); } - var stringParams = Arrays.stream(params).map(Object::toString).toArray(String[]::new); + String[] stringParams = Arrays.stream(params).map(Object::toString).toArray(String[]::new); return lookup(localizedMessages, key, stringParams); } diff --git a/jablib/src/main/java/org/jabref/logic/layout/format/DOICheck.java b/jablib/src/main/java/org/jabref/logic/layout/format/DOICheck.java index 6f0606291e4..9ce3dbec044 100644 --- a/jablib/src/main/java/org/jabref/logic/layout/format/DOICheck.java +++ b/jablib/src/main/java/org/jabref/logic/layout/format/DOICheck.java @@ -32,7 +32,7 @@ public String format(String fieldText) { } if (doiPreferences.isUseCustom()) { - var base = URLUtil.createUri(doiPreferences.getDefaultBaseURI()); + URI base = URLUtil.createUri(doiPreferences.getDefaultBaseURI()); return DOI.parse(result).flatMap(doi -> doi.getExternalURIFromBase(base)) .map(URI::toASCIIString) .orElse(result); diff --git a/jablib/src/main/java/org/jabref/logic/msbib/MSBibDatabase.java b/jablib/src/main/java/org/jabref/logic/msbib/MSBibDatabase.java index bfdb4410589..d869cc56c8e 100644 --- a/jablib/src/main/java/org/jabref/logic/msbib/MSBibDatabase.java +++ b/jablib/src/main/java/org/jabref/logic/msbib/MSBibDatabase.java @@ -57,13 +57,13 @@ public MSBibDatabase() { */ public MSBibDatabase(BibDatabase database, List entries) { this(); + List resolvedEntries; if (entries == null) { - var resolvedEntries = database.resolveForStrings(database.getEntries(), false); - setEntriesForExport(resolvedEntries); + resolvedEntries = database.resolveForStrings(database.getEntries(), false); } else { - var resolvedEntries = database.resolveForStrings(entries, false); - setEntriesForExport(resolvedEntries); + resolvedEntries = database.resolveForStrings(entries, false); } + setEntriesForExport(resolvedEntries); } /** diff --git a/jablib/src/main/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultTxtWriter.java b/jablib/src/main/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultTxtWriter.java index 5a5de7b15ca..3f0fda170cb 100644 --- a/jablib/src/main/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultTxtWriter.java +++ b/jablib/src/main/java/org/jabref/logic/quality/consistency/BibliographyConsistencyCheckResultTxtWriter.java @@ -5,15 +5,18 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.StringJoiner; import java.util.stream.Collectors; import org.jabref.logic.l10n.Localization; +import org.jabref.logic.quality.consistency.BibliographyConsistencyCheck.EntryTypeResult; import org.jabref.model.database.BibDatabaseMode; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.BibEntryTypesManager; import org.jabref.model.entry.field.Field; +import org.jabref.model.entry.types.EntryType; /** * Outputs the findings as plain text. @@ -79,9 +82,9 @@ private void initializeColumnWidths() { int entryTypeWidth = "entry type".length(); int citationKeyWidth = "citation key".length(); - for (var keysAndValue : result.entryTypeToResultMap().entrySet()) { + for (Map.Entry keysAndValue : result.entryTypeToResultMap().entrySet()) { entryTypeWidth = Math.max(entryTypeWidth, keysAndValue.getKey().getDisplayName().length()); - for (var entry : keysAndValue.getValue().sortedEntries()) { + for (BibEntry entry : keysAndValue.getValue().sortedEntries()) { citationKeyWidth = Math.max(citationKeyWidth, entry.getCitationKey().orElse("").length()); } } diff --git a/jablib/src/main/java/org/jabref/logic/search/indexing/DefaultLinkedFilesIndexer.java b/jablib/src/main/java/org/jabref/logic/search/indexing/DefaultLinkedFilesIndexer.java index bf7386ddef3..dd06c8c1101 100644 --- a/jablib/src/main/java/org/jabref/logic/search/indexing/DefaultLinkedFilesIndexer.java +++ b/jablib/src/main/java/org/jabref/logic/search/indexing/DefaultLinkedFilesIndexer.java @@ -33,6 +33,7 @@ import org.apache.lucene.document.Document; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexWriterConfig; +import org.apache.lucene.index.IndexableField; import org.apache.lucene.index.StoredFields; import org.apache.lucene.index.Term; import org.apache.lucene.search.IndexSearcher; @@ -62,7 +63,7 @@ public class DefaultLinkedFilesIndexer implements LuceneIndexer { public DefaultLinkedFilesIndexer(BibDatabaseContext databaseContext, FilePreferences filePreferences) throws IOException { this.databaseContext = databaseContext; this.filePreferences = filePreferences; - this.libraryName = databaseContext.getDatabasePath().map(path -> path.getFileName().toString()).orElseGet(() -> "untitled"); + this.libraryName = databaseContext.getDatabasePath().map(path -> path.getFileName().toString()).orElse("untitled"); this.indexedFiles = new ConcurrentHashMap<>(); indexDirectoryPath = databaseContext.getFulltextIndexPath(); @@ -172,7 +173,7 @@ private void removeUnlinkedFiles(Collection entriesToRemove, Collectio Map> currentFiles = new HashMap<>(); for (BibEntry entry : databaseContext.getEntries()) { for (LinkedFile linkedFile : entry.getFiles()) { - currentFiles.computeIfAbsent(linkedFile.getLink(), k -> new HashSet<>()).add(entry); + currentFiles.computeIfAbsent(linkedFile.getLink(), _ -> new HashSet<>()).add(entry); } } @@ -244,8 +245,8 @@ private Map getLinkedFilesFromIndex() { TopDocs allDocs = searcher.search(query, Integer.MAX_VALUE); for (ScoreDoc scoreDoc : allDocs.scoreDocs) { Document doc = storedFields.document(scoreDoc.doc); - var pathField = doc.getField(LinkedFilesConstants.PATH.toString()); - var modifiedField = doc.getField(LinkedFilesConstants.MODIFIED.toString()); + IndexableField pathField = doc.getField(LinkedFilesConstants.PATH.toString()); + IndexableField modifiedField = doc.getField(LinkedFilesConstants.MODIFIED.toString()); if (pathField != null && modifiedField != null) { linkedFiles.put(pathField.stringValue(), Long.valueOf(modifiedField.stringValue())); } diff --git a/jablib/src/main/java/org/jabref/logic/util/StandardFileType.java b/jablib/src/main/java/org/jabref/logic/util/StandardFileType.java index 78d464b449d..d8fdf3b8427 100644 --- a/jablib/src/main/java/org/jabref/logic/util/StandardFileType.java +++ b/jablib/src/main/java/org/jabref/logic/util/StandardFileType.java @@ -67,7 +67,7 @@ public String getName() { } public static FileType fromExtensions(String... extensions) { - var exts = Arrays.asList(extensions); + List exts = Arrays.asList(extensions); return OptionalUtil.orElse(Arrays.stream(StandardFileType.values()) .filter(field -> field.getExtensions().stream().anyMatch(exts::contains)) diff --git a/jablib/src/main/java/org/jabref/logic/util/io/RegExpBasedFileFinder.java b/jablib/src/main/java/org/jabref/logic/util/io/RegExpBasedFileFinder.java index 9de0b18af24..0522a3647d4 100644 --- a/jablib/src/main/java/org/jabref/logic/util/io/RegExpBasedFileFinder.java +++ b/jablib/src/main/java/org/jabref/logic/util/io/RegExpBasedFileFinder.java @@ -14,7 +14,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; -import java.util.stream.Collectors; import java.util.stream.Stream; import org.jabref.logic.citationkeypattern.BracketedPattern; @@ -71,7 +70,7 @@ private Pattern createFileNamePattern(String[] fileParts, String extensionRegExp * @return a String representation of a regex matching the expanded content and the expanded content cleaned for file name use */ private static String toFileNameRegex(String expandedContent) { - var cleanedContent = FileNameCleaner.cleanFileName(expandedContent); + String cleanedContent = FileNameCleaner.cleanFileName(expandedContent); return expandedContent.equals(cleanedContent) ? Pattern.quote(expandedContent) : "(" + Pattern.quote(expandedContent) + ")|(" + Pattern.quote(cleanedContent) + ")"; } @@ -166,20 +165,22 @@ private List findFile(final BibEntry entry, final Path directory, final St actualDirectory = Path.of(dirToProcess + '/'); continue; } - if (".".equals(dirToProcess)) { // Stay in current directory - continue; - } - if ("..".equals(dirToProcess)) { - actualDirectory = actualDirectory.getParent(); - continue; - } - if ("*".equals(dirToProcess)) { // Do for all direct subdirs - File[] subDirs = actualDirectory.toFile().listFiles(); - if (subDirs != null) { - String restOfFileString = StringUtil.join(fileParts, "/", index + 1, fileParts.length); - for (File subDir : subDirs) { - if (subDir.isDirectory()) { - resultFiles.addAll(findFile(entry, subDir.toPath(), restOfFileString, extensionRegExp)); + switch (dirToProcess) { + case "." -> { + continue; // Stay in current directory + } + case ".." -> { + actualDirectory = actualDirectory.getParent(); + continue; + } + case "*" -> { + File[] subDirs = actualDirectory.toFile().listFiles(); + if (subDirs != null) { + String restOfFileString = StringUtil.join(fileParts, "/", index + 1, fileParts.length); + for (File subDir : subDirs) { + if (subDir.isDirectory()) { + resultFiles.addAll(findFile(entry, subDir.toPath(), restOfFileString, extensionRegExp)); + } } } } @@ -191,7 +192,7 @@ private List findFile(final BibEntry entry, final Path directory, final St final Path rootDirectory = actualDirectory; try (Stream pathStream = Files.walk(actualDirectory)) { // We only want to transverse directory (and not the current one; this is already done below) - for (Path path : pathStream.filter(element -> isSubDirectory(rootDirectory, element)).collect(Collectors.toList())) { + for (Path path : pathStream.filter(element -> isSubDirectory(rootDirectory, element)).toList()) { resultFiles.addAll(findFile(entry, path, restOfFileString, extensionRegExp)); } } catch (UncheckedIOException ioe) { @@ -204,7 +205,7 @@ private List findFile(final BibEntry entry, final Path directory, final St Pattern toMatch = createFileNamePattern(fileParts, extensionRegExp, entry); BiPredicate matcher = (path, attributes) -> toMatch.matcher(path.getFileName().toString()).matches(); try (Stream pathStream = Files.find(actualDirectory, 1, matcher, FileVisitOption.FOLLOW_LINKS)) { - resultFiles.addAll(pathStream.collect(Collectors.toList())); + resultFiles.addAll(pathStream.toList()); } catch (UncheckedIOException uncheckedIOException) { // Previously, an empty list were returned here on both IOException and UncheckedIOException throw uncheckedIOException.getCause(); diff --git a/jablib/src/main/java/org/jabref/model/entry/AuthorList.java b/jablib/src/main/java/org/jabref/model/entry/AuthorList.java index ed4090e1f3b..21a877b325c 100644 --- a/jablib/src/main/java/org/jabref/model/entry/AuthorList.java +++ b/jablib/src/main/java/org/jabref/model/entry/AuthorList.java @@ -149,7 +149,7 @@ public static AuthorList of(Author... authors) { } private static String andCoordinatedConjunction(List authors, Function style, boolean oxfordComma) { - var formattedAuthors = authors.stream().map(style).collect(Collectors.toUnmodifiableList()); + List formattedAuthors = authors.stream().map(style).toList(); return andCoordinatedConjunction(formattedAuthors, oxfordComma); } @@ -295,7 +295,7 @@ public AuthorList latexFree() { if (latexFreeAuthors == null) { latexFreeAuthors = new AuthorList(authors.stream() .map(Author::latexFree) - .collect(Collectors.toUnmodifiableList())); + .toList()); latexFreeAuthors.latexFreeAuthors = latexFreeAuthors; } return latexFreeAuthors; @@ -314,7 +314,7 @@ public AuthorList latexFree() { * @return formatted list of authors. */ public String getAsNatbib() { - var authors = getAuthors(); + List authors = getAuthors(); return switch (authors.size()) { case 0 -> ""; case 1 -> authors.getFirst().getNamePrefixAndFamilyName(); diff --git a/jablib/src/main/java/org/jabref/model/strings/LatexToUnicodeAdapter.java b/jablib/src/main/java/org/jabref/model/strings/LatexToUnicodeAdapter.java index 01c4c304ef2..120a112f6ee 100644 --- a/jablib/src/main/java/org/jabref/model/strings/LatexToUnicodeAdapter.java +++ b/jablib/src/main/java/org/jabref/model/strings/LatexToUnicodeAdapter.java @@ -39,7 +39,7 @@ public static String format(String inField) { public static Optional parse(String inField) { Objects.requireNonNull(inField); String toFormat = UNDERSCORE_MATCHER.matcher(inField).replaceAll(REPLACEMENT_CHAR); - var parsingResult = LaTeX2Unicode.parse(toFormat); + Parsed parsingResult = LaTeX2Unicode.parse(toFormat); if (parsingResult instanceof Parsed.Success) { String text = parsingResult.get().value(); toFormat = Normalizer.normalize(text, Normalizer.Form.NFC); diff --git a/jablib/src/test/java/org/jabref/logic/util/io/RegExpBasedFileFinderTest.java b/jablib/src/test/java/org/jabref/logic/util/io/RegExpBasedFileFinderTest.java index 63b8847f77c..29640c29af2 100644 --- a/jablib/src/test/java/org/jabref/logic/util/io/RegExpBasedFileFinderTest.java +++ b/jablib/src/test/java/org/jabref/logic/util/io/RegExpBasedFileFinderTest.java @@ -85,7 +85,7 @@ void yearAuthFirstPageFindFiles() throws IOException { @Test void findAssociatedFilesFindFileContainingBracketsFromBracketedExpression() throws IOException { - var bibEntry = new BibEntry().withField(StandardField.TITLE, "Regexp from [A-Z]"); + BibEntry bibEntry = new BibEntry().withField(StandardField.TITLE, "Regexp from [A-Z]"); RegExpBasedFileFinder fileFinder = new RegExpBasedFileFinder("[TITLE]\\\\.[extension]", ','); @@ -97,7 +97,7 @@ void findAssociatedFilesFindFileContainingBracketsFromBracketedExpression() thro @Test void findAssociatedFilesFindCleanedFileFromBracketedExpression() throws IOException { - var bibEntry = new BibEntry().withField(StandardField.JOURNAL, "ACM/IEEE-CS"); + BibEntry bibEntry = new BibEntry().withField(StandardField.JOURNAL, "ACM/IEEE-CS"); RegExpBasedFileFinder fileFinder = new RegExpBasedFileFinder("[JOURNAL]\\\\.[extension]", ','); @@ -109,7 +109,7 @@ void findAssociatedFilesFindCleanedFileFromBracketedExpression() throws IOExcept @Test void findAssociatedFilesFindFileContainingParenthesizesFromBracketedExpression() throws IOException { - var bibEntry = new BibEntry().withCitationKey("Guo_ICC_2010") + BibEntry bibEntry = new BibEntry().withCitationKey("Guo_ICC_2010") .withField(StandardField.TITLE, "Ferroelectric Metal Organic Framework (MOF)") .withField(StandardField.AUTHOR, "Guo, M. and Cai, H.-L. and Xiong, R.-G.") .withField(StandardField.JOURNAL, "Inorganic Chemistry Communications") diff --git a/jablib/src/test/java/org/jabref/model/groups/AutomaticPersonsGroupTest.java b/jablib/src/test/java/org/jabref/model/groups/AutomaticPersonsGroupTest.java index 6bceb4625d7..f2ad0a80b04 100644 --- a/jablib/src/test/java/org/jabref/model/groups/AutomaticPersonsGroupTest.java +++ b/jablib/src/test/java/org/jabref/model/groups/AutomaticPersonsGroupTest.java @@ -1,7 +1,7 @@ package org.jabref.model.groups; import java.util.Arrays; -import java.util.stream.Collectors; +import java.util.Set; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.field.StandardField; @@ -18,39 +18,39 @@ private static GroupTreeNode[] createPersonSubGroupFrom(String... lastNames) { .map(lastName -> new LastNameGroup(lastName, GroupHierarchyType.INDEPENDENT, StandardField.AUTHOR, lastName)) .map(GroupTreeNode::new) - .collect(Collectors.toList()) + .toList() .toArray(GroupTreeNode[]::new); } @Test void createSubgroupsFromCommaSeparatedLastNames() { BibEntry bibEntry = new BibEntry().withField(StandardField.AUTHOR, "Turing, Alan and Hopper, Grace"); - var subgroups = new AutomaticPersonsGroup("", GroupHierarchyType.INDEPENDENT, StandardField.AUTHOR).createSubgroups(bibEntry); - var expectedSubgroups = createPersonSubGroupFrom("Turing", "Hopper"); + Set subgroups = new AutomaticPersonsGroup("", GroupHierarchyType.INDEPENDENT, StandardField.AUTHOR).createSubgroups(bibEntry); + GroupTreeNode[] expectedSubgroups = createPersonSubGroupFrom("Turing", "Hopper"); assertThat(subgroups, containsInAnyOrder(expectedSubgroups)); } @Test void createSubgroupsContainingSpaceSeparatedNames() { BibEntry bibEntry = new BibEntry().withField(StandardField.AUTHOR, "Alan Turing and Grace Hopper"); - var subgroups = new AutomaticPersonsGroup("", GroupHierarchyType.INDEPENDENT, StandardField.AUTHOR).createSubgroups(bibEntry); - var expectedSubgroups = createPersonSubGroupFrom("Turing", "Hopper"); + Set subgroups = new AutomaticPersonsGroup("", GroupHierarchyType.INDEPENDENT, StandardField.AUTHOR).createSubgroups(bibEntry); + GroupTreeNode[] expectedSubgroups = createPersonSubGroupFrom("Turing", "Hopper"); assertThat(subgroups, containsInAnyOrder(expectedSubgroups)); } @Test void createSubgroupFromLatex() { BibEntry bibEntry = new BibEntry().withField(StandardField.AUTHOR, "Kurt G{\\\"{o}}del"); - var subgroup = new AutomaticPersonsGroup("", GroupHierarchyType.INDEPENDENT, StandardField.AUTHOR).createSubgroups(bibEntry); - var expectedSubgroup = createPersonSubGroupFrom("Gödel"); + Set subgroup = new AutomaticPersonsGroup("", GroupHierarchyType.INDEPENDENT, StandardField.AUTHOR).createSubgroups(bibEntry); + GroupTreeNode[] expectedSubgroup = createPersonSubGroupFrom("Gödel"); assertThat(subgroup, contains(expectedSubgroup)); } @Test void createSubgroupFromUnicode() { BibEntry bibEntry = new BibEntry().withField(StandardField.AUTHOR, "Kurt Gödel"); - var subgroup = new AutomaticPersonsGroup("", GroupHierarchyType.INDEPENDENT, StandardField.AUTHOR).createSubgroups(bibEntry); - var expectedSubgroup = createPersonSubGroupFrom("Gödel"); + Set subgroup = new AutomaticPersonsGroup("", GroupHierarchyType.INDEPENDENT, StandardField.AUTHOR).createSubgroups(bibEntry); + GroupTreeNode[] expectedSubgroup = createPersonSubGroupFrom("Gödel"); assertThat(subgroup, contains(expectedSubgroup)); } }