package org.openbel.framework.api.internal;
import org.openbel.framework.api.Kam.KamEdge;
import org.openbel.framework.common.model.Statement;
import java.sql.SQLException;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* Defines a {@link KAMDao} that retrieves BEL evidence for one or more edges.
*/
public interface EvidenceDao extends KAMDao {
/**
* Retrieves evidence for one or more edges; {@code null} if all edges
* have no BEL evidence (e.g. do not exist in the KAM).
*
* @param edges {@link Collection} of {@link KamEdge}
* @throws SQLException if an error occurred querying the KAM
* @return {@link List} of {@link Statement}
*/
public Map<KamEdge, List<Statement>> evidence(Collection<KamEdge> edges)
throws SQLException;
/**
* Retrieves evidence for one or more edges. A {@link KAMCatalogDao.AnnotationFilter}
* is applied to the evidence to filter the returned results.
*
* @param edges {@link Collection} of {@link KamEdge}
* @throws SQLException if an error occurred querying the KAM
* @return {@link List} of {@link Statement}
*/
public Map<KamEdge, List<Statement>> evidence(Collection<KamEdge> edges, KAMCatalogDao.AnnotationFilter filter)
throws SQLException;
}