org.crosswire.jsword.book.basic
Class AbstractBookMetaData

java.lang.Object
  extended by org.crosswire.jsword.book.basic.AbstractBookMetaData
All Implemented Interfaces:
Comparable, BookMetaData
Direct Known Subclasses:
DefaultBookMetaData, SwordBookMetaData

public abstract class AbstractBookMetaData
extends Object
implements BookMetaData

An implementaion of the Propery Change methods from BookMetaData.

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

Field Summary
static String DEFAULT_LANG_CODE
           
private  String displayName
           
private  BookDriver driver
           
private  String fullName
           
private  IndexStatus indexStatus
           
private static ResourceBundle languages
           
private static Logger log
          The log stream
private  Map prop
          The single key version of the properties
private static String UNKNOWN_LANG_CODE
           
 
Fields inherited from interface org.crosswire.jsword.book.BookMetaData
KEY_BOOK, KEY_CATEGORY, KEY_DRIVER, KEY_INDEXSTATUS, KEY_INITIALS, KEY_LANGUAGE, KEY_NAME
 
Constructor Summary
AbstractBookMetaData()
           
 
Method Summary
 int compareTo(Object obj)
           
private  String computeFullName()
           
 boolean equals(Object obj)
           
 BookDriver getDriver()
          Accessor for the driver that runs this Book.
 String getDriverName()
          Calculated field: The name of the name, which could be helpful to distinguish similar Books available through 2 BookDrivers.
 String getFullName()
          Calculated field: The full name of the book, for example The format is "name, (Driver)"
 IndexStatus getIndexStatus()
          Has anyone generated a search index for this Book?
 String getLanguage()
          The language of the book is the common name for the iso639 code.
static String getLanguage(String ident, String iso639Code)
          Get the language name from the language code.
 String getOsisID()
          Calculated field: Get an OSIS identifier for the OsisText.setOsisIDWork() and the Work.setOsisWork() methods.
 Map getProperties()
          Get a list of all the properties available to do with this Book.
protected  Object getProperty(String key)
           
 String getUnlockKey()
          Gets the unlock key for the module.
 boolean hasFeature(FeatureType feature)
          Return whether the feature is supported by the book.
 int hashCode()
           
 boolean isEnciphered()
          Indicate whether this book is enciphered.
 boolean isLocked()
          Indicate whether this book is enciphered and without a key.
 boolean isQuestionable()
          Indicate whether this book is questionable.
 boolean isSupported()
          Indicate whether this book is supported by JSword.
protected  void putProperty(String key, String value)
           
 void setDriver(BookDriver driver)
           
 void setIndexStatus(IndexStatus newValue)
          This method does not alter the index status, however it is for Indexers that are responsible for indexing and have changed the status themselves.
 void setProperties(Map newProperties)
           
 org.jdom.Document toOSIS()
          Get an OSIS representation of information concerning this Book.
 String toString()
           
 boolean unlock(String unlockKey)
          Unlocks a book with the given key.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.crosswire.jsword.book.BookMetaData
getBookCategory, getInitials, getName, isLeftToRight
 

Field Detail

log

private static final Logger log
The log stream


DEFAULT_LANG_CODE

public static final String DEFAULT_LANG_CODE
See Also:
Constant Field Values

UNKNOWN_LANG_CODE

private static final String UNKNOWN_LANG_CODE
See Also:
Constant Field Values

languages

private static ResourceBundle languages

prop

private Map prop
The single key version of the properties


driver

private BookDriver driver

fullName

private String fullName

displayName

private String displayName

indexStatus

private IndexStatus indexStatus
Constructor Detail

AbstractBookMetaData

public AbstractBookMetaData()
Method Detail

getDriver

public BookDriver getDriver()
Description copied from interface: BookMetaData
Accessor for the driver that runs this Book. Note this method should only be used to delete() Books. Everything else you should want to do to a Book should be available in other ways.

Specified by:
getDriver in interface BookMetaData

getDriverName

public String getDriverName()
Description copied from interface: BookMetaData
Calculated field: The name of the name, which could be helpful to distinguish similar Books available through 2 BookDrivers.

Specified by:
getDriverName in interface BookMetaData
Returns:
The driver name

hasFeature

public boolean hasFeature(FeatureType feature)
Description copied from interface: BookMetaData
Return whether the feature is supported by the book.

Specified by:
hasFeature in interface BookMetaData

getOsisID

public String getOsisID()
Description copied from interface: BookMetaData
Calculated field: Get an OSIS identifier for the OsisText.setOsisIDWork() and the Work.setOsisWork() methods. The response will generally be of the form [Bible][Dict..].getInitials

Specified by:
getOsisID in interface BookMetaData
Returns:
The osis id of this book

getFullName

public String getFullName()
Description copied from interface: BookMetaData
Calculated field: The full name of the book, for example The format is "name, (Driver)"

Specified by:
getFullName in interface BookMetaData
Returns:
The full name of this book

computeFullName

private String computeFullName()

isSupported

public boolean isSupported()
Description copied from interface: BookMetaData
Indicate whether this book is supported by JSword. Since the expectation is that all books are supported, abstract implementations should return true and let specific implementations return false if they cannot support the book.

Specified by:
isSupported in interface BookMetaData
Returns:
true if the book is supported

isEnciphered

public boolean isEnciphered()
Description copied from interface: BookMetaData
Indicate whether this book is enciphered. Since the expectation is that most books are unenciphered, abstract implementations should return false and let specific implementations return true otherwise.

Specified by:
isEnciphered in interface BookMetaData
Returns:
true if the book is enciphered

isLocked

public boolean isLocked()
Description copied from interface: BookMetaData
Indicate whether this book is enciphered and without a key. Since the expectation is that most books are unenciphered, abstract implementations should return false and let specific implementations return true otherwise.

Specified by:
isLocked in interface BookMetaData
Returns:
true if the book is locked

unlock

public boolean unlock(String unlockKey)
Description copied from interface: BookMetaData
Unlocks a book with the given key.

Specified by:
unlock in interface BookMetaData
Parameters:
unlockKey - the key to try
Returns:
true if the unlock key worked.

getUnlockKey

public String getUnlockKey()
Description copied from interface: BookMetaData
Gets the unlock key for the module.

Specified by:
getUnlockKey in interface BookMetaData
Returns:
the unlock key, if any, null otherwise.

isQuestionable

public boolean isQuestionable()
Description copied from interface: BookMetaData
Indicate whether this book is questionable. A book may be deemed questionable if it's quality or content has not been confirmed. Since the expectation is that all books are not questionable, abstract implementations should return false and let specific implementations return true if the book is questionable.

Specified by:
isQuestionable in interface BookMetaData
Returns:
true if the book is questionable

getLanguage

public String getLanguage()
Description copied from interface: BookMetaData
The language of the book is the common name for the iso639 code.

Specified by:
getLanguage in interface BookMetaData
Returns:
the common name for the language

getProperties

public Map getProperties()
Description copied from interface: BookMetaData
Get a list of all the properties available to do with this Book. The returned Properties will be read-only so any attempts to alter it will fail.

Specified by:
getProperties in interface BookMetaData

setProperties

public void setProperties(Map newProperties)
Parameters:
newProperties -

getProperty

protected Object getProperty(String key)
Parameters:
key -
Returns:
the object found by the key

putProperty

protected void putProperty(String key,
                           String value)
Parameters:
key -
value -

getIndexStatus

public IndexStatus getIndexStatus()
Description copied from interface: BookMetaData
Has anyone generated a search index for this Book?

Specified by:
getIndexStatus in interface BookMetaData
See Also:
IndexManager

setIndexStatus

public void setIndexStatus(IndexStatus newValue)
Description copied from interface: BookMetaData
This method does not alter the index status, however it is for Indexers that are responsible for indexing and have changed the status themselves.

Specified by:
setIndexStatus in interface BookMetaData
See Also:
IndexManager

toOSIS

public org.jdom.Document toOSIS()
Description copied from interface: BookMetaData
Get an OSIS representation of information concerning this Book.

Specified by:
toOSIS in interface BookMetaData

setDriver

public void setDriver(BookDriver driver)
Parameters:
driver - The driver to set.

getLanguage

public static String getLanguage(String ident,
                                 String iso639Code)
Get the language name from the language code. Note, this code does not support dialects.

Parameters:
iso639Code -
Returns:
the name of the language

equals

public boolean equals(Object obj)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

compareTo

public int compareTo(Object obj)
Specified by:
compareTo in interface Comparable

toString

public String toString()
Overrides:
toString in class Object

Copyright ยจ 2003-2006