Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.crosswire.jsword.book.sword
Class SwordGenBook

    java.lang.Object
      org.crosswire.jsword.book.basic.AbstractBook
          org.crosswire.jsword.book.sword.SwordGenBook

All Implemented Interfaces:
  Comparable<Book>, Activatable, Book

    public class SwordGenBook

extends AbstractBook

A Sword version of a generic book.

Author:
  Joe Walker
See Also:
  `The GNU Lesser General Public License for details.`

Field Summary
`private boolean` | `active` Are we active
`protected Filter` | `filter` The filter to use to convert to OSIS.
`private Key` | `global` The global key list
`private Map<String,Key>` | `map` So we can quickly find a Key given the text for the key
`private Key` | `set` So we can implement getIndex() easily

Constructor Summary
`protected` | `SwordGenBook(SwordBookMetaData sbmd, Backend backend)` Construct an SwordGenBook given the BookMetaData and the AbstractBackend.

Method Summary
`void` | `activate(Lock lock)` Called to indicate that the Book should initialize itself, and consume whatever system resources it needs to be able to respond to other queries.
`private void` | `checkActive()` Helper method so we can quickly activate ourselves on access
`boolean` | `contains(Key key)` Returns `true` if this book contains the specified element.
`Key` | `createEmptyKeyList()` Fetch an empty Key to which we can add Keys.
`void` | `deactivate(Lock lock)` Called to indicate that the Book should release whatever system resources it can to make way for other uses.
`Key` | `getGlobalKeyList()` Get a complete list of index entries.
`Key` | `getKey(String text)` Someone has typed in a reference to find, but we need a Key to actually look it up.
`List<org.jdom2.Content>` | `getOsis(Key key, RawTextToXmlProcessor processor)`
`Iterator<org.jdom2.Content>` | `getOsisIterator(Key key, boolean allowEmpty, boolean allowGenTitle)` Return an iterator that returns each key's OSIS in turn.
`String` | `getRawText(Key key)` Returns the raw text that getData(Key key) builds into OSIS.
`Key` | `getValidKey(String name)` Get a Key for the name, if possible.
`boolean` | `isWritable()` A Book is writable if the file system allows the underlying files to be opened for writing and if the driver for the book allows writing.
`void` | `setAliasKey(Key alias, Key source)` Store an alias of one key to another.
`void` | `setRawText(Key key, String rawData)` Store the raw text for the given key.

Methods inherited from class org.crosswire.jsword.book.basic.AbstractBook
`addIndexStatusListener, compareTo, equals, find, find, firePropertyChange, getAbbreviation, getBackend, getBook, getBookCategory, getBookMetaData, getDriver, getDriverName, getIndexStatus, getInitials, getLanguage, getName, getOsisID, getProperty, getPropertyKeys, getScope, getUnlockKey, hasFeature, hashCode, isEnciphered, isLeftToRight, isLocked, isQuestionable, isSupported, match, putProperty, putProperty, removeIndexStatusListener, setBookMetaData, setIndexStatus, toOSIS, toString, unlock`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Field Detail

### global

    private Key global

  The global key list

### active

    private boolean active

  Are we active

### map

    private Map<String,Key> map

  So we can quickly find a Key given the text for the key

### set

    private Key set

  So we can implement getIndex() easily

### filter

    protected Filter filter

  The filter to use to convert to OSIS.

Constructor Detail

### SwordGenBook

    protected SwordGenBook(SwordBookMetaData sbmd,
                           Backend backend)

  Construct an SwordGenBook given the BookMetaData and the AbstractBackend.

  Parameters:
    `sbmd` - the metadata that describes the book
    `backend` - the means by which the resource is accessed

Method Detail

### activate

    public final void activate(Lock lock)

  Description copied from interface: `Activatable`
  Called to indicate that the Book should initialize itself, and consume whatever system resources it needs to be able to respond to other queries.

  Specified by:
    `activate` in interface `Activatable`
  Overrides:
    `activate` in class `AbstractBook`
  Parameters:
    `lock` - An attempt to ensure that only the Activator calls this method

### deactivate

    public final void deactivate(Lock lock)

  Description copied from interface: `Activatable`
  Called to indicate that the Book should release whatever system resources it can to make way for other uses.

  Specified by:
    `deactivate` in interface `Activatable`
  Overrides:
    `deactivate` in class `AbstractBook`
  Parameters:
    `lock` - An attempt to ensure that only the Activator calls this method

### getOsisIterator

    public Iterator<org.jdom2.Content> getOsisIterator(Key key,
                                                       boolean allowEmpty,
                                                       boolean allowGenTitle)
                                                throws BookException

  Description copied from interface: `Book`
  Return an iterator that returns each key's OSIS in turn.

  Parameters:
    `key` - the Items to locate
    `allowEmpty` - indicates whether empty keys should be present.
    `allowGenTitle` - indicates whether to generate titles
  Returns:
    an iterator over the OSIS Content
  Throws:
    `BookException` - If anything goes wrong with this method

### getRawText

    public String getRawText(Key key)
                      throws BookException

  Description copied from interface: `Book`
  Returns the raw text that getData(Key key) builds into OSIS.

  Parameters:
    `key` - The item to locate
  Returns:
    The found Book data
  Throws:
    `BookException` - If anything goes wrong with this method

### contains

    public boolean contains(Key key)

  Description copied from interface: `Book`
  Returns `true` if this book contains the specified element.

  Parameters:
    `key` - element whose presence in this book is to be tested.
  Returns:
    `true` if this book contains the specified element.

### getOsis

    public List<org.jdom2.Content> getOsis(Key key,
                                           RawTextToXmlProcessor processor)
                                    throws BookException

  Specified by:
    `getOsis` in class `AbstractBook`
  Throws:
    `BookException`

### isWritable

    public boolean isWritable()

  Description copied from interface: `Book`
  A Book is writable if the file system allows the underlying files to be opened for writing and if the driver for the book allows writing. Ultimately, all drivers should allow writing. At this time writing is not supported by drivers, so abstract implementations should return false and let specific implementations return true otherwise.

  Returns:
    true if the book is writable

### setRawText

    public void setRawText(Key key,
                           String rawData)
                    throws BookException

  Description copied from interface: `Book`
  Store the raw text for the given key. This will replace/hide any raw text that already is present. Note: it is the responsibility of the calling program to ensure that the raw text matches the character set encoding and markup of the module.

  Parameters:
    `key` - The item to locate
    `rawData` - The text to store
  Throws:
    `BookException` - If anything goes wrong with this method

### setAliasKey

    public void setAliasKey(Key alias,
                            Key source)
                     throws BookException

  Description copied from interface: `Book`
  Store an alias of one key to another. Some Bibles do not have a verse by verse numbering system but rather meld several verses into one. Thus, any verse in the range refers to the same verse. Also it may apply to biblical commentaries that are indexed by Book, Chapter, Verse and that discuss the Bible at a verse range level. For a dictionary, it may be used for synonyms.

  It should be an exception to set an alias when that alias already has raw text. Also, it should be an exception to set an alias to an alias. However, getRawText(Key) must be able to handle alias chains.

  Parameters:
    `alias` - the key that aliases another
    `source` - the key that holds the text
  Throws:
    `BookException` - If anything goes wrong with this method

### getGlobalKeyList

    public Key getGlobalKeyList()

  Description copied from interface: `Book`
  Get a complete list of index entries. Create a Key that encompasses all of the known valid keys for the given context. For a dictionary this will include all of the entries in the dictionary, for a Bible this will probably include all the verses in the Bible, but a commentary may well miss some out.

  Returns:
    A Key that includes all of the known Keys

### getValidKey

    public Key getValidKey(String name)

  Description copied from interface: `Book`
  Get a Key for the name, if possible. Otherwise return an empty Key.

  Parameters:
    `name` - The string to translate into a Key
  Returns:
    a valid key.

### getKey

    public Key getKey(String text)
               throws NoSuchKeyException

  Description copied from interface: `Book`
  Someone has typed in a reference to find, but we need a Key to actually look it up. So we create a Key from the string if such a translation is possible. The returned Key may be a BranchKey if the string represents more than one Key.

  Parameters:
    `text` - The string to translate into a Key
  Returns:
    The Key corresponding to the input text
  Throws:
    `NoSuchKeyException` - If the name can not be parsed.

### createEmptyKeyList

    public Key createEmptyKeyList()

  Description copied from interface: `Book`
  Fetch an empty Key to which we can add Keys. Not all implementations of Key are able to hold any type of Key, It isn't reasonable to expect a Key of Bible verses (=Passage) to hold a dictionary Key. So each KeyFactory must be able to create you an empty Key to which you can safely add other Keys it generates.

  Returns:
    An empty Key that can hold other Keys from this factory.

### checkActive

    private void checkActive()

  Helper method so we can quickly activate ourselves on access

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Copyright ¨ 2003-2015
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD