rename FixedSizeSortedSet to FixedSizeSortedList because it's actually a list

This commit is contained in:
Athou
2024-01-07 13:40:36 +01:00
parent 5fec4a4c5f
commit deb51f2ccc
4 changed files with 97 additions and 97 deletions

View File

@@ -10,14 +10,14 @@ import java.util.List;
*
*
*/
public class FixedSizeSortedSet<E> {
public class FixedSizeSortedList<E> {
private final List<E> inner;
private final Comparator<? super E> comparator;
private final int capacity;
public FixedSizeSortedSet(int capacity, Comparator<? super E> comparator) {
public FixedSizeSortedList(int capacity, Comparator<? super E> comparator) {
this.inner = new ArrayList<>(Math.max(0, capacity));
this.capacity = capacity < 0 ? Integer.MAX_VALUE : capacity;
this.comparator = comparator;

View File

@@ -10,7 +10,7 @@ import org.apache.commons.lang3.builder.CompareToBuilder;
import org.hibernate.SessionFactory;
import com.commafeed.CommaFeedConfiguration;
import com.commafeed.backend.FixedSizeSortedSet;
import com.commafeed.backend.FixedSizeSortedList;
import com.commafeed.backend.feed.FeedEntryKeyword;
import com.commafeed.backend.feed.FeedEntryKeyword.Mode;
import com.commafeed.backend.model.FeedEntry;
@@ -199,9 +199,9 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
Comparator<FeedEntryStatus> comparator = order == ReadingOrder.desc ? STATUS_COMPARATOR_DESC : STATUS_COMPARATOR_ASC;
FixedSizeSortedSet<FeedEntryStatus> set = new FixedSizeSortedSet<>(capacity, comparator);
FixedSizeSortedList<FeedEntryStatus> fssl = new FixedSizeSortedList<>(capacity, comparator);
for (FeedSubscription sub : subs) {
FeedEntryStatus last = (order != null && set.isFull()) ? set.last() : null;
FeedEntryStatus last = (order != null && fssl.isFull()) ? fssl.last() : null;
JPAQuery<FeedEntry> query = buildQuery(user, sub, unreadOnly, keywords, newerThan, -1, capacity, order, last, tag, minEntryId,
maxEntryId);
List<Tuple> tuples = query.select(entry.id, entry.updated, status.id, entry.content.title).fetch();
@@ -225,11 +225,11 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
status.setEntry(entry);
status.setSubscription(sub);
set.add(status);
fssl.add(status);
}
}
List<FeedEntryStatus> placeholders = set.asList();
List<FeedEntryStatus> placeholders = fssl.asList();
int size = placeholders.size();
if (size < offset) {
return new ArrayList<>();

View File

@@ -0,0 +1,90 @@
package com.commafeed.backend;
import java.util.Comparator;
import org.apache.commons.lang3.ObjectUtils;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
class FixedSizeSortedListTest {
private static final Comparator<String> COMP = ObjectUtils::compare;
private FixedSizeSortedList<String> list;
@BeforeEach
public void init() {
list = new FixedSizeSortedList<>(3, COMP);
}
@Test
void testSimpleAdd() {
list.add("0");
list.add("1");
list.add("2");
Assertions.assertEquals("0", list.asList().get(0));
Assertions.assertEquals("1", list.asList().get(1));
Assertions.assertEquals("2", list.asList().get(2));
}
@Test
void testIsFull() {
list.add("0");
list.add("1");
Assertions.assertFalse(list.isFull());
list.add("2");
Assertions.assertTrue(list.isFull());
}
@Test
void testOrder() {
list.add("2");
list.add("1");
list.add("0");
Assertions.assertEquals("0", list.asList().get(0));
Assertions.assertEquals("1", list.asList().get(1));
Assertions.assertEquals("2", list.asList().get(2));
}
@Test
void testEviction() {
list.add("7");
list.add("8");
list.add("9");
list.add("0");
list.add("1");
list.add("2");
Assertions.assertEquals("0", list.asList().get(0));
Assertions.assertEquals("1", list.asList().get(1));
Assertions.assertEquals("2", list.asList().get(2));
}
@Test
void testCapacity() {
list.add("0");
list.add("1");
list.add("2");
list.add("3");
Assertions.assertEquals(3, list.asList().size());
}
@Test
void testLast() {
list.add("0");
list.add("1");
list.add("2");
Assertions.assertEquals("2", list.last());
list.add("3");
Assertions.assertEquals("2", list.last());
}
}

View File

@@ -1,90 +0,0 @@
package com.commafeed.backend;
import java.util.Comparator;
import org.apache.commons.lang3.ObjectUtils;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
class FixedSizeSortedSetTest {
private static final Comparator<String> COMP = ObjectUtils::compare;
private FixedSizeSortedSet<String> set;
@BeforeEach
public void init() {
set = new FixedSizeSortedSet<>(3, COMP);
}
@Test
void testSimpleAdd() {
set.add("0");
set.add("1");
set.add("2");
Assertions.assertEquals("0", set.asList().get(0));
Assertions.assertEquals("1", set.asList().get(1));
Assertions.assertEquals("2", set.asList().get(2));
}
@Test
void testIsFull() {
set.add("0");
set.add("1");
Assertions.assertFalse(set.isFull());
set.add("2");
Assertions.assertTrue(set.isFull());
}
@Test
void testOrder() {
set.add("2");
set.add("1");
set.add("0");
Assertions.assertEquals("0", set.asList().get(0));
Assertions.assertEquals("1", set.asList().get(1));
Assertions.assertEquals("2", set.asList().get(2));
}
@Test
void testEviction() {
set.add("7");
set.add("8");
set.add("9");
set.add("0");
set.add("1");
set.add("2");
Assertions.assertEquals("0", set.asList().get(0));
Assertions.assertEquals("1", set.asList().get(1));
Assertions.assertEquals("2", set.asList().get(2));
}
@Test
void testCapacity() {
set.add("0");
set.add("1");
set.add("2");
set.add("3");
Assertions.assertEquals(3, set.asList().size());
}
@Test
void testLast() {
set.add("0");
set.add("1");
set.add("2");
Assertions.assertEquals("2", set.last());
set.add("3");
Assertions.assertEquals("2", set.last());
}
}