org.crosswire.jsword.book

## Interface BookDriver

- All Superinterfaces:
    BookProvider
  All Known Implementing Classes:
    AbstractBookDriver, ReadingsBookDriver, SwordBookDriver

      public interface BookDriver
      extends BookProvider

  The BibleDriver class allows creation of new Books.
  Author:
    Joe Walker
  See Also:
    `The GNU Lesser General Public License for details.`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Book` | `create(Book source)` Create a new Book based on a source.
    `void` | `delete(Book dead)` Delete this Book from the system.
    `String` | `getDriverName()` A short name for this BookDriver
    `boolean` | `isDeletable(Book dead)` Is this book able to be deleted.
    `boolean` | `isWritable()` Is this name capable of creating writing data in the correct format as well as reading it?

    - ### Methods inherited from interface org.crosswire.jsword.book.BookProvider

      `getBooks, getFirstBook`

- - ### Method Detail

    - #### isWritable

          boolean isWritable()

      Is this name capable of creating writing data in the correct format as well as reading it?
      Returns:
        true/false to indicate ability to write data

    - #### create

          Book create(Book source)
                      throws BookException

      Create a new Book based on a source.
      Parameters:
        `source` - The Book from which to copy data
      Returns:
        The new WritableBible
      Throws:
        `BookException` - If the name is not valid

    - #### isDeletable

          boolean isDeletable(Book dead)

      Is this book able to be deleted.
      Parameters:
        `dead` - the book to be deleted
      Returns:
        whether the book can be deleted.

    - #### delete

          void delete(Book dead)
                      throws BookException

      Delete this Book from the system. Take care with this method for obvious reasons. For most implementations of Book etc, this method will throw up because most will be read-only.
      Parameters:
        `dead` - the book to be deleted
      Throws:
        `BookException` - If the Book can't be deleted.

    - #### getDriverName

          String getDriverName()

      A short name for this BookDriver
      Returns:
        a short name for this BookDriver