Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add entry based on ISSN number #10124 #10178

Merged
merged 31 commits into from
Nov 4, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
e56cea0
Add: implementing the ISSN Fetcher
guipmenezes Aug 4, 2023
a582067
Add: implementing methods of IssnFetcher class
guipmenezes Aug 4, 2023
18ebb1e
Substantially changes on IssnFetcher class
guipmenezes Aug 7, 2023
7d87a31
Substantial changes of IssnFetcher
guipmenezes Aug 7, 2023
1f6eb67
Merge branch 'JabRef:main' into fix-issue-10124
guipmenezes Aug 9, 2023
80925e6
Implementing the performSearchById method for IssnFetcher class
guipmenezes Aug 10, 2023
f741462
Merge branch 'JabRef:main' into fix-issue-10124
guipmenezes Aug 11, 2023
479029f
Saving changes for branch updating
guipmenezes Aug 14, 2023
62cb93d
Merge branch 'JabRef:main' into fix-issue-10124
guipmenezes Aug 14, 2023
557f25b
Started to implement the ISSN search logic
guipmenezes Aug 15, 2023
49975f1
Merge branch 'JabRef:main' into fix-issue-10124
guipmenezes Aug 15, 2023
4994515
Merge branch 'fix-issue-10124' of https://github.com/guipmenezes/jabr…
guipmenezes Aug 15, 2023
9dd0a4c
Merge branch 'JabRef:main' into fix-issue-10124
guipmenezes Aug 15, 2023
e521a2f
Refactor the performSearchById method
guipmenezes Aug 16, 2023
89269e8
Add the IssnFetcher on WebFetcher class and add unit tests
guipmenezes Aug 16, 2023
6dfd8eb
Merge branch 'JabRef:main' into fix-issue-10124
guipmenezes Aug 17, 2023
d4300c3
Implement search based on the ISSN number
guipmenezes Aug 17, 2023
65a7d04
Merge branch 'JabRef:main' into fix-issue-10124
guipmenezes Aug 18, 2023
8926ce6
Change the ISSN Checker validation of a valid checksum
guipmenezes Aug 18, 2023
c2264f1
Merge branch 'fix-issue-10124' of https://github.com/guipmenezes/jabr…
guipmenezes Aug 18, 2023
6c701d9
Merge branch 'JabRef:main' into fix-issue-10124
guipmenezes Aug 22, 2023
6fa4d9e
Merge branch 'JabRef:main' into fix-issue-10124
guipmenezes Aug 23, 2023
1e1347e
Merge remote-tracking branch 'upstream/main' into fix-issue-10124
Siedlerchr Nov 1, 2023
b74f5d1
refactor to use exiting journal info fetcher
Siedlerchr Nov 1, 2023
08211ef
Merge remote-tracking branch 'upstream/main' into fix-issue-10124
Siedlerchr Nov 4, 2023
515fcc4
reafactor
Siedlerchr Nov 4, 2023
798d723
add button next to journal field
Siedlerchr Nov 4, 2023
a13e3c8
fix tests and checkstyle
Siedlerchr Nov 4, 2023
f6cd33f
Merge remote-tracking branch 'upstream/main' into fix-issue-10124
Siedlerchr Nov 4, 2023
1b41443
arch test
Siedlerchr Nov 4, 2023
4f13a2e
Fuuu checkstyle
Siedlerchr Nov 4, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package org.jabref.gui.fieldeditors.identifier;

import org.jabref.gui.DialogService;
import org.jabref.gui.JabRefGUI;
import org.jabref.gui.autocompleter.SuggestionProvider;
import org.jabref.gui.mergeentries.FetchAndMergeEntry;
import org.jabref.gui.util.TaskExecutor;
import org.jabref.logic.integrity.FieldCheckers;
import org.jabref.model.entry.BibEntry;
import org.jabref.model.entry.field.StandardField;
import org.jabref.model.entry.identifier.ISSN;
import org.jabref.preferences.PreferencesService;

public class ISSNIdentifierEditorViewModel extends BaseIdentifierEditorViewModel<ISSN> {
public ISSNIdentifierEditorViewModel(SuggestionProvider<?> suggestionProvider, FieldCheckers fieldCheckers, DialogService dialogService, TaskExecutor taskExecutor, PreferencesService preferences) {
super(StandardField.ISSN, suggestionProvider, fieldCheckers, dialogService, taskExecutor, preferences);
configure(true, false);
}

@Override
public void fetchBibliographyInformation(BibEntry bibEntry) {
new FetchAndMergeEntry(JabRefGUI.getMainFrame().getCurrentLibraryTab(), taskExecutor, preferences, dialogService).fetchAndMerge(entry, field);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ public IdentifierEditor(Field field,
this.viewModel = new ISBNIdentifierEditorViewModel(suggestionProvider, fieldCheckers, dialogService, taskExecutor, preferences);
} else if (StandardField.EPRINT == field) {
this.viewModel = new EprintIdentifierEditorViewModel(suggestionProvider, fieldCheckers, dialogService, taskExecutor, preferences);
} else if (StandardField.ISSN == field) {
this.viewModel = new ISSNIdentifierEditorViewModel(suggestionProvider, fieldCheckers, dialogService, taskExecutor, preferences);
} else {
throw new IllegalStateException(String.format("Unable to instantiate a view model for identifier field editor '%s'", field.getDisplayName()));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public IssnFetcher(ImportFormatPreferences importFormatPreferences) {
public Optional<BibEntry> performSearchById(String identifier) throws FetcherException {

Optional<String> checkedId = issnChecker.checkValue(identifier);
if (checkedId.isPresent()) {
if (checkedId.equals(Optional.empty())) {
String queryString = concatenateIssnWithId(identifier);
List<BibEntry> bibEntries = doajFetcher.performSearch(queryString);
return bibEntries.stream().findFirst();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,16 @@
import org.jabref.logic.importer.ImportFormatPreferences;
import org.jabref.model.entry.BibEntry;
import org.jabref.model.entry.field.StandardField;
import org.jabref.model.entry.types.StandardEntryType;
import org.jabref.preferences.BibEntryPreferences;
import org.jabref.testutils.category.FetcherTest;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

@FetcherTest
class IssnFetcherTest {
Expand All @@ -21,9 +24,13 @@ class IssnFetcherTest {
private BibEntry bibEntry;
@BeforeEach
void setUp() {
fetcher = new IssnFetcher(mock(ImportFormatPreferences.class));
ImportFormatPreferences importPrefs = mock(ImportFormatPreferences.class);
BibEntryPreferences bibEntryPrefs = mock(BibEntryPreferences.class);
when(importPrefs.bibEntryPreferences()).thenReturn(bibEntryPrefs);

bibEntry = new BibEntry(BibEntry.DEFAULT_TYPE)
fetcher = new IssnFetcher(importPrefs);

bibEntry = new BibEntry(StandardEntryType.Article)
.withField(StandardField.ISSN, "2579-5341")
.withField(StandardField.TITLE, "Query: Jurnal Sistem Informasi")
.withField(StandardField.INSTITUTION, "Univesitas Islam Negeri Sumatera Utara, Fakultas Sains dan Teknologi, Program Studi Sistem Informasi")
Expand All @@ -33,7 +40,7 @@ void setUp() {

@Test
void performSearchById() throws FetcherException {
Optional<BibEntry> fetchedEntry = fetcher.performSearchById("1662-4548");
Optional<BibEntry> fetchedEntry = fetcher.performSearchById("2579-5341");
assertEquals(Optional.of(bibEntry), fetchedEntry);
}

Expand Down