org.crosswire.jsword.book

## Interface Bookmark

- All Superinterfaces:
    Cloneable, Serializable
  All Known Implementing Classes:
    DefaultBookmark

      public interface Bookmark
      extends Serializable, Cloneable

  A Bookmark remembers a particular view of one or more Books. What is viewed regarding a book set is either a SearchRequest or a key lookup request.
  Author:
    DM Smith
  See Also:
    `The GNU Lesser General Public License for details.`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addBook(Book book)` Add a Book to this Bookmark.
    `Bookmark` | `clone()` This needs to be declared here so that it is visible as a method on a derived Bookmark.
    `BookData` | `getBookData()` Convert this Bookmark into a BookData by converting the SearchReqeust or lookup request into a key list.
    `List<Book>` | `getBooks()` Return the ordered set of books.
    `String` | `getLookupRequest()` Get the lookup request.
    `SearchRequest` | `getSearchRequest()` Get the SearchRequest for this Bookmark.
    `void` | `setLookupRequest(String request)` Set the lookup request for this Bookmark.
    `void` | `setSearchRequest(SearchRequest request)` Set the SearchRequest for this Bookmark.

- - ### Method Detail

    - #### addBook

          void addBook(Book book)

      Add a Book to this Bookmark. The books are maintained in the order they are added as a set.
      Parameters:
        `book` - the Book to add.

    - #### getBooks

          List<Book> getBooks()

      Return the ordered set of books.
      Returns:
        the books

    - #### setSearchRequest

          void setSearchRequest(SearchRequest request)

      Set the SearchRequest for this Bookmark. A copy of the SearchRequest will be stored. Note, setting this will clear the lookup request, if any.
      Parameters:
        `request` - the SearchRequest

    - #### getSearchRequest

          SearchRequest getSearchRequest()

      Get the SearchRequest for this Bookmark.
      Returns:
        a copy of the SearchRequest, or null.

    - #### setLookupRequest

          void setLookupRequest(String request)

      Set the lookup request for this Bookmark. Note, setting this will clear the SearchRequest, if any.
      Parameters:
        `request` - the lookup request.

    - #### getLookupRequest

          String getLookupRequest()

      Get the lookup request.
      Returns:
        the lookup request or null.

    - #### getBookData

          BookData getBookData()

      Convert this Bookmark into a BookData by converting the SearchReqeust or lookup request into a key list.
      Returns:
        the resulting BookData

    - #### clone

          Bookmark clone()

      This needs to be declared here so that it is visible as a method on a derived Bookmark.
      Returns:
        A complete copy of ourselves