public interface DataAccessObject
Interface for accessing data in LensKit.
LensKit data is represented by entities; see org.lenskit.data.entities
DAOs must be thread-safe, but individual streams they return need not be.
Modifier and Type | Method and Description |
---|---|
LongSet |
getEntityIds(EntityType type)
Get the IDs of all entities with a particular type.
|
Set<EntityType> |
getEntityTypes()
Get the types of entities that are available in this DAO.
|
Entity |
lookupEntity(EntityType type,
long id)
Look up an entity by ID.
|
<E extends Entity> |
lookupEntity(EntityType type,
long id,
Class<E> view)
Look up an entity by ID and project it to a view class.
|
<V extends Entity> |
query(Class<V> type)
Start a query for a particular type using the fluent query interface.
|
Query<Entity> |
query(EntityType type)
Start a query using the fluent query interface.
|
<E extends Entity> |
streamEntities(EntityQuery<E> query)
Stream entities in response to a query.
|
ObjectStream<Entity> |
streamEntities(EntityType type)
Stream all entities of a particular type.
|
<E extends Entity> |
streamEntityGroups(EntityQuery<E> query,
TypedName<Long> grpCol)
Stream entities in response to a query, grouping them by a long ID.
|
Set<EntityType> getEntityTypes()
Get the types of entities that are available in this DAO.
LongSet getEntityIds(EntityType type)
Get the IDs of all entities with a particular type.
type
- The entity type.@Nullable Entity lookupEntity(EntityType type, long id)
Look up an entity by ID.
type
- The entity type.id
- The entity ID.null
if no such entity exists.@Nullable <E extends Entity> E lookupEntity(EntityType type, long id, Class<E> view)
Look up an entity by ID and project it to a view class.
type
- The entity type.id
- The entity ID.view
- The view class.null
if no such entity exists.IllegalArgumentException
- if the entity cannot be projected to view
.ObjectStream<Entity> streamEntities(EntityType type)
Stream all entities of a particular type.
type
- The entity type.<E extends Entity> ObjectStream<E> streamEntities(EntityQuery<E> query)
Stream entities in response to a query.
query
- The query.E
- The view class type.UnsupportedQueryException
- if the query cannot be satisfied.<E extends Entity> ObjectStream<IdBox<List<E>>> streamEntityGroups(EntityQuery<E> query, TypedName<Long> grpCol)
Stream entities in response to a query, grouping them by a long ID.
query
- The query.grpCol
- The column to group by.E
- The view class type.UnsupportedQueryException
- if the query cannot be satisfiedQuery<Entity> query(EntityType type)
Start a query using the fluent query interface.
type
- The type of entity to retrieve.<V extends Entity> Query<V> query(Class<V> type)
Start a query for a particular type using the fluent query interface. This method looks up the entity type using the DefaultEntityType
annotation on the view class.
type
- The view class type.IllegalArgumentException
- if the type has no DefaultEntityType
annotation.