public final class PrefetchingItemEventDAO extends Object implements ItemEventDAO, Describable
Item event DAO that pre-loads all events from an event DAO.
Constructor and Description |
---|
PrefetchingItemEventDAO(EventDAO dao) |
Modifier and Type | Method and Description |
---|---|
void |
describeTo(DescriptionWriter writer)
Write this class’s description to a sink.
|
List<Event> |
getEventsForItem(long item)
Get the events for a specific item.
|
<E extends Event> |
getEventsForItem(long item,
Class<E> type)
Get the events for a specific item, filtering by type.
|
LongSet |
getUsersForItem(long item)
Get the users who have interacted with an item.
|
ObjectStream<ItemEventCollection<Event>> |
streamEventsByItem()
Stream events grouped by item.
|
<E extends Event> |
streamEventsByItem(Class<E> type)
Stream events grouped by item.
|
static Function<EventDAO,ItemEventDAO> |
wrapper()
A function that wraps an event DAO in a prefetching item event DAO.
|
@Inject public PrefetchingItemEventDAO(EventDAO dao)
public static Function<EventDAO,ItemEventDAO> wrapper()
A function that wraps an event DAO in a prefetching item event DAO. If the DAO already implements ItemEventDAO
, it is returned unwrapped.
public ObjectStream<ItemEventCollection<Event>> streamEventsByItem()
ItemEventDAO
Stream events grouped by item.
streamEventsByItem
in interface ItemEventDAO
public <E extends Event> ObjectStream<ItemEventCollection<E>> streamEventsByItem(Class<E> type)
ItemEventDAO
Stream events grouped by item.
streamEventsByItem
in interface ItemEventDAO
type
- The type of item to look for.type
from all items. If an item exists but does not have any events, it may or may not be included depending on the DAO implementation.public List<Event> getEventsForItem(long item)
ItemEventDAO
Get the events for a specific item.
getEventsForItem
in interface ItemEventDAO
item
- The item ID.null
if the item is unknown.public <E extends Event> List<E> getEventsForItem(long item, Class<E> type)
ItemEventDAO
Get the events for a specific item, filtering by type.
getEventsForItem
in interface ItemEventDAO
item
- The item ID.type
- The type of events to retrieve.null
if the item is unknown.public LongSet getUsersForItem(long item)
ItemEventDAO
Get the users who have interacted with an item.
getUsersForItem
in interface ItemEventDAO
item
- The item ID.null
if the item is unknown.public void describeTo(DescriptionWriter writer)
Describable
Write this class’s description to a sink. Anything relevant to this object’s identity should be digested; the idea is that, barring hash collisions, two objects with the same digest are equivalent. Used for things like deterministically generating cache file names.
describeTo
in interface Describable
writer
- The description writer to use.