org.crosswire.jsword.book.sword
Class SwordDictionary

java.lang.Object
  extended by org.crosswire.jsword.book.basic.AbstractBook
      extended by org.crosswire.jsword.book.sword.SwordDictionary
All Implemented Interfaces:
Comparable<Book>, Activatable, Book
Direct Known Subclasses:
SwordDailyDevotion

public class SwordDictionary
extends AbstractBook

A Sword version of Dictionary.

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

Field Summary
private  Filter filter
          The filter to use to convert to OSIS.
 
Constructor Summary
protected SwordDictionary(SwordBookMetaData sbmd, Backend backend)
          Construct an SwordDictionary given the BookMetaData and the AbstractBackend.
 
Method Summary
 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.
 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 allowGenTitles)
          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
activate, addIndexStatusListener, compareTo, deactivate, 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

filter

private Filter filter
The filter to use to convert to OSIS.

Constructor Detail

SwordDictionary

protected SwordDictionary(SwordBookMetaData sbmd,
                          Backend backend)
Construct an SwordDictionary 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

getOsisIterator

public Iterator<org.jdom2.Content> getOsisIterator(Key key,
                                                   boolean allowEmpty,
                                                   boolean allowGenTitles)
                                            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.
allowGenTitles - 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.

Copyright ยจ 2003-2015