package eu.dnetlib.r2d2.neo4j.dao;

import eu.dnetlib.r2d2.neo4j.BeanDao;
import eu.dnetlib.r2d2.neo4j.domain.Neo4jInformationObject;
import eu.dnetlib.r2d2.neo4j.domain.Neo4jRLEntry;
import eu.dnetlib.r2d2.neo4j.domain.Neo4jReadingList;

public interface RLEntryDao extends BeanDao<Neo4jRLEntry> {

	public Iterable<Neo4jRLEntry> getReadingListEntries(String rlId);
	
	public void addEntryToReadingList(String entryId, String rlId);
	
	public void removeEntryFromReadingList(String entryId, String rlId);

	public Iterable<Neo4jRLEntry> getEntriesForItem(String itemId);
	
	public Iterable<Neo4jRLEntry> getReadingListEntries(String rlId, Neo4jRLEntry.Kind kind);
	
	public Neo4jRLEntry getEntry(String rlId, String IOId);
	
	/**
	 * Syntactic sugar.
	 * 
	 * @param rl reading list
	 * @param io information object
	 * @return
	 */
	public Neo4jRLEntry getEntry(Neo4jReadingList rl, Neo4jInformationObject io);
}
