Skip to content

Commit bb09904

Browse files
authored
Refactor Databasesearcher (#13183)
1 parent 20874f9 commit bb09904

File tree

4 files changed

+6
-11
lines changed

4 files changed

+6
-11
lines changed

jabkit/src/main/java/org/jabref/cli/Search.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,12 @@ public void run() {
7878
List<BibEntry> matches;
7979
try {
8080
// extract current thread task executor from indexManager
81-
matches = new DatabaseSearcher(searchQuery,
81+
matches = new DatabaseSearcher(
8282
databaseContext,
8383
new CurrentThreadTaskExecutor(),
8484
argumentProcessor.cliPreferences,
8585
postgreServer
86-
).getMatches();
86+
).getMatches(searchQuery);
8787
} catch (IOException ex) {
8888
LOGGER.error("Error occurred when searching", ex);
8989
return;

jablib/src/main/java/org/jabref/logic/search/DatabaseSearcher.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import java.io.IOException;
44
import java.util.List;
5-
import java.util.Objects;
65

76
import org.jabref.logic.preferences.CliPreferences;
87
import org.jabref.logic.util.TaskExecutor;
@@ -18,24 +17,20 @@ public class DatabaseSearcher {
1817
private static final Logger LOGGER = LoggerFactory.getLogger(DatabaseSearcher.class);
1918

2019
private final BibDatabaseContext databaseContext;
21-
private final SearchQuery query;
2220
private final IndexManager indexManager;
2321

24-
// TODO: get rid of task executor here or add a constructor overload?
25-
public DatabaseSearcher(SearchQuery query,
26-
BibDatabaseContext databaseContext,
22+
public DatabaseSearcher(BibDatabaseContext databaseContext,
2723
TaskExecutor taskExecutor,
2824
CliPreferences preferences,
2925
PostgreServer postgreServer) throws IOException {
3026
this.databaseContext = databaseContext;
31-
this.query = Objects.requireNonNull(query);
3227
this.indexManager = new IndexManager(databaseContext, taskExecutor, preferences, postgreServer);
3328
}
3429

3530
/**
3631
* @return The matches in the order they appear in the library.
3732
*/
38-
public List<BibEntry> getMatches() {
33+
public List<BibEntry> getMatches(SearchQuery query) {
3934
LOGGER.debug("Search term: {}", query);
4035

4136
if (!query.isValid()) {

jablib/src/test/java/org/jabref/logic/search/DatabaseSearcherTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ void databaseSearcher(List<BibEntry> expectedMatches, SearchQuery query, List<Bi
6767
for (BibEntry entry : entries) {
6868
databaseContext.getDatabase().insertEntry(entry);
6969
}
70-
List<BibEntry> matches = new DatabaseSearcher(query, databaseContext, TASK_EXECUTOR, preferences, postgreServer).getMatches();
70+
List<BibEntry> matches = new DatabaseSearcher(databaseContext, TASK_EXECUTOR, preferences, postgreServer).getMatches(query);
7171
assertEquals(expectedMatches, matches);
7272
}
7373

jablib/src/test/java/org/jabref/logic/search/DatabaseSearcherWithBibFilesTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ private static Stream<Arguments> searchLibrary() {
151151
void searchLibrary(List<BibEntry> expected, String testFile, String query, boolean isFullText) throws URISyntaxException, IOException {
152152
BibDatabaseContext databaseContext = initializeDatabaseFromPath(testFile);
153153
EnumSet<SearchFlags> flags = isFullText ? EnumSet.of(SearchFlags.FULLTEXT) : EnumSet.noneOf(SearchFlags.class);
154-
List<BibEntry> matches = new DatabaseSearcher(new SearchQuery(query, flags), databaseContext, TASK_EXECUTOR, preferences, postgreServer).getMatches();
154+
List<BibEntry> matches = new DatabaseSearcher(databaseContext, TASK_EXECUTOR, preferences, postgreServer).getMatches(new SearchQuery(query, flags));
155155
assertThat(expected, Matchers.containsInAnyOrder(matches.toArray()));
156156
}
157157
}

0 commit comments

Comments
 (0)