org.crosswire.jsword.book.install
Interface Installer

All Superinterfaces:
BookList
All Known Implementing Classes:
AbstractSwordInstaller, HttpSwordInstaller

public interface Installer
extends BookList

An interface that allows us to download from a specific source of Bible data. It is important that implementor of this interface define equals() and hashcode() properly.

To start with I only envisage that we use Sword sourced Bible data however the rest of the system is designed to be able to use data from e-Sword, OLB, etc.

Author:
Joe Walker [joe at eireneh dot com], DM Smith [dmsmith555 at yahoo dot com]
See Also:
for license details. The copyright to this program is held by it's authors.

Method Summary
 void downloadSearchIndex(Book book, URI tempDest)
          Download a search index for the given Book.
 List getBooks()
          Get a list of BookMetaData objects that represent downloadable books.
 String getInstallerDefinition()
          Accessor for the URI
 int getSize(Book book)
          Return true if the book is not installed or there is a newer version to install.
 String getType()
          Get the type of the Installer.
 void install(Book book)
          Download and install a book locally.
 boolean isNewer(Book book)
          Return true if the book is not installed or there is a newer version to install.
 void reloadBookList()
          Refetch a list of names from the remote source.
 URI toRemoteURI(Book book)
           
 
Methods inherited from interface org.crosswire.jsword.book.BookList
addBooksListener, getBooks, removeBooksListener
 

Method Detail

getType

String getType()
Get the type of the Installer.

Returns:
the type of the installer

getInstallerDefinition

String getInstallerDefinition()
Accessor for the URI

Returns:
the source uri

toRemoteURI

URI toRemoteURI(Book book)
Parameters:
book - The book meta-data to get a URI from.
Returns:
the remote uri for the BookMetaData

getBooks

List getBooks()
Get a list of BookMetaData objects that represent downloadable books. If no list has been retrieved from the remote source using reloadIndex() then we should just return an empty list and not attempt to contact the remote source. See notes on reload for more information.

Specified by:
getBooks in interface BookList
See Also:
reloadBookList()

getSize

int getSize(Book book)
Return true if the book is not installed or there is a newer version to install.

Parameters:
book - The book meta-data to check on.
Returns:
whether there is a newer version to install

isNewer

boolean isNewer(Book book)
Return true if the book is not installed or there is a newer version to install.

Parameters:
book - The book meta-data to check on.
Returns:
whether there is a newer version to install

reloadBookList

void reloadBookList()
                    throws InstallException
Refetch a list of names from the remote source. It would make sense if the user was warned about the implications of this action. If the user lives in a country that persecutes Christians then this action might give the game away.

Throws:
InstallException

install

void install(Book book)
             throws InstallException
Download and install a book locally. The name should be one from an index list retrieved from getIndex() or reloadIndex()

Parameters:
book - The book to install
Throws:
InstallException

downloadSearchIndex

void downloadSearchIndex(Book book,
                         URI tempDest)
                         throws InstallException
Download a search index for the given Book. The installation of the search index is the responsibility of the IndexManager.

Parameters:
book - The book to download a search index for.
tempDest - A temporary URI for downloading to. Passed to the IndexManager for installation.
Throws:
InstallException

Copyright ยจ 2003-2007