forked from Archives/Athou_commafeed
rename FixedSizeSortedSet to FixedSizeSortedList because it's actually a list
This commit is contained in:
@@ -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;
|
||||
@@ -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<>();
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user