/*
* Copyright (C) 2011 Alex Kuiper
*
* This file is part of PageTurner
*
* PageTurner is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* PageTurner is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with PageTurner. If not, see <http://www.gnu.org/licenses/>.*
*/
package net.nightwhistler.pageturner.library;
import jedi.option.Option;
import nl.siegmann.epublib.domain.Book;
import java.io.IOException;
public interface LibraryService {
/**
* Adds a new book to the library database, optionally copying it.
*
* @param fileName
* @param book
* @param updateLastRead
* @param copyFile
* @throws IOException
*/
public void storeBook( String fileName, Book book, boolean updateLastRead, boolean copyFile ) throws IOException;
public void updateReadingProgress( String fileName, int progress );
public QueryResult<LibraryBook> findAllByLastRead(String filter);
public QueryResult<LibraryBook> findAllByLastAdded(String filter);
public QueryResult<LibraryBook> findAllByTitle(String filter);
public QueryResult<LibraryBook> findAllByAuthor(String filter);
public QueryResult<LibraryBook> findUnread(String filter);
public Option<LibraryBook> getBook( String fileName );
public boolean hasBook( String fileName );
public void deleteBook( String fileName );
public void close();
}