BookList.java |
1 /** 2 * Distribution License: 3 * JSword is free software; you can redistribute it and/or modify it under 4 * the terms of the GNU Lesser General Public License, version 2.1 or later 5 * as published by the Free Software Foundation. This program is distributed 6 * in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even 7 * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8 * See the GNU Lesser General Public License for more details. 9 * 10 * The License is available on the internet at: 11 * http://www.gnu.org/copyleft/lgpl.html 12 * or by writing to: 13 * Free Software Foundation, Inc. 14 * 59 Temple Place - Suite 330 15 * Boston, MA 02111-1307, USA 16 * 17 * © CrossWire Bible Society, 2005 - 2016 18 * 19 */ 20 package org.crosswire.jsword.book; 21 22 import java.util.List; 23 24 /** 25 * There are several lists of Books, the most important being the installed 26 * Books, however there may be others like the available books or books from a 27 * specific driver. This interface provides a common method of accessing all of 28 * them. 29 * 30 * @see gnu.lgpl.License The GNU Lesser General Public License for details. 31 * @see gnu.lgpl.License 32 * @author Joe Walker 33 */ 34 public interface BookList { 35 /** 36 * Get a list of all the Books of all types. 37 * 38 * @return the desired list of books 39 */ 40 List<Book> getBooks(); 41 42 /** 43 * Get a filtered list of all the Books. 44 * 45 * @param filter the filter to apply to the list of books 46 * @return the desired list of books 47 * @see BookFilters 48 */ 49 List<Book> getBooks(BookFilter filter); 50 51 /** 52 * Add a BibleListener from our list of listeners 53 * 54 * @param li interested listener 55 */ 56 void addBooksListener(BooksListener li); 57 58 /** 59 * Remove a BibleListener to our list of listeners 60 * 61 * @param li disinterested listener 62 */ 63 void removeBooksListener(BooksListener li); 64 } 65