From e76694e214c1f29f17b65283fe2d501fec7ad247 Mon Sep 17 00:00:00 2001 From: kennycud Date: Thu, 13 Mar 2025 13:46:17 -0700 Subject: [PATCH] implemented before and after filtering --- .../repository/hsqldb/HSQLDBCacheUtils.java | 8 ++++++ .../repository/HSQLDBCacheUtilsTests.java | 26 +++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/src/main/java/org/qortal/repository/hsqldb/HSQLDBCacheUtils.java b/src/main/java/org/qortal/repository/hsqldb/HSQLDBCacheUtils.java index 726a0c33..46cd7cab 100644 --- a/src/main/java/org/qortal/repository/hsqldb/HSQLDBCacheUtils.java +++ b/src/main/java/org/qortal/repository/hsqldb/HSQLDBCacheUtils.java @@ -183,6 +183,14 @@ public class HSQLDBCacheUtils { // retain only candidates with names Stream stream = candidates.stream().filter(candidate -> candidate.name != null ); + if(after.isPresent()) { + stream = stream.filter( candidate -> candidate.created > after.get().longValue() ); + } + + if(before.isPresent()) { + stream = stream.filter( candidate -> candidate.created < before.get().longValue() ); + } + if(exclude.isPresent()) stream = stream.filter( candidate -> !exclude.get().get().contains( candidate.name )); diff --git a/src/test/java/org/qortal/test/repository/HSQLDBCacheUtilsTests.java b/src/test/java/org/qortal/test/repository/HSQLDBCacheUtilsTests.java index 0cda76d4..6a984b1d 100644 --- a/src/test/java/org/qortal/test/repository/HSQLDBCacheUtilsTests.java +++ b/src/test/java/org/qortal/test/repository/HSQLDBCacheUtilsTests.java @@ -300,6 +300,19 @@ public class HSQLDBCacheUtilsTests { ); } + @Test + public void testAfterNegative() { + ArbitraryResourceData data = new ArbitraryResourceData(); + data.created = 10L; + data.name = "Joe"; + + filterListByMap( + List.of(data), + NAME_LEVEL, new HashMap<>(Map.of(AFTER, 11L)), + 0 + ); + } + @Test public void testBeforePositive(){ ArbitraryResourceData data = new ArbitraryResourceData(); @@ -313,6 +326,19 @@ public class HSQLDBCacheUtilsTests { ); } + @Test + public void testBeforeNegative(){ + ArbitraryResourceData data = new ArbitraryResourceData(); + data.created = 10L; + data.name = "Joe"; + + filterListByMap( + List.of(data), + NAME_LEVEL, new HashMap<>(Map.of(BEFORE, 9L)), + 0 + ); + } + @Test public void testTitlePositive() {