package org.juxtasoftware.dao;
import java.util.List;
import org.juxtasoftware.model.PageMark;
/**
* Data access object for Page Breaks
*
* @author loufoster
*
*/
public interface PageMarkDao {
/**
* Create a set of page break tags for a witness
* @param pbs
*/
void create(List<PageMark> pbs);
/**
* Get the set of all page marks for <code>witnessId</code>
*
* @param witnessId The identifier for a witness
* @param type The type of marks to find (optional; if omitted, all marks on the page are returned)
* @return Set of all PBs associated with witness <code>witnessId</code>
*/
List<PageMark> find( final Long witnessId);
List<PageMark> find( final Long witnessId, PageMark.Type type);
/**
* Delete all marks for the witness identified by <code>witnessId</code>.
* @param witness
*/
void deleteAll( final Long witnessId );
/**
* Determine if the witness identified by <code>witnessId</code> has
* any page breaks
*
* @param witnessId
* @return
*/
boolean hasBreaks( final Long witnessId );
/**
* Determine if the witness identified by <code>witnessId</code> has
* any line numbers on the page
*
* @param witnessId
* @return
*/
boolean hasLineNumbers( final Long witnessId );
}