org.crosswire.jsword.book.basic
Class DefaultBookMetaData

java.lang.Object
  extended by org.crosswire.jsword.book.basic.AbstractBookMetaData
      extended by org.crosswire.jsword.book.basic.DefaultBookMetaData
All Implemented Interfaces:
Comparable<BookMetaData>, BookMetaData

public class DefaultBookMetaData
extends AbstractBookMetaData

DefaultBookMetaData is an implementation of the of the BookMetaData interface. A less complete implementation design for inheritance is available in AbstractBookMetaData where the complexity is in the setup rather than the inheritance. DefaultBookMetaData is probably the preferred implementation.

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

Field Summary
private  String initials
           
private  String name
           
private  Map<String,String> props
           
private  BookCategory type
           
 
Fields inherited from interface org.crosswire.jsword.book.BookMetaData
KEY_BOOK, KEY_BOOKLIST, KEY_CATEGORY, KEY_DRIVER, KEY_FONT, KEY_LANG, KEY_LANGUAGE, KEY_NAME, KEY_SCOPE, KEY_VERSIFICATION
 
Constructor Summary
DefaultBookMetaData(BookDriver driver, String name, BookCategory type)
          Ctor with some default values.
 
Method Summary
private  void addRow(OSISUtil.OSISFactory factory, org.jdom2.Element table, String key, String value)
           
 BookCategory getBookCategory()
          What category of content is this, a Bible or a reference work like a Dictionary or Commentary.
 String getInitials()
          The initials of this book - how people familiar with this book will know it, for example "NIV", "KJV".
 String getInternalName()
          The internal name of this book.
 String getName()
          The name of the book, for example "King James Version" or "Bible in Basic English" or "Greek".
 String getProperty(String key)
          Get the property or null.
 Set<String> getPropertyKeys()
          Get a list of all the properties available to do with this Book.
 VerseKey getScope()
           
 boolean isLeftToRight()
          Return the orientation of the script of the Book.
 void putProperty(String key, String value)
          Save to shared storage.
 void putProperty(String key, String value, boolean forFrontend)
          Saves an entry to a particular configuration file.
 void setBookCategory(BookCategory aType)
           
 void setInitials(String initials)
          See note on setName() for side effect on setInitials().
 void setName(String name)
          Setting the name also sets some default initials, so if you wish to set some specific initials then it should be done after setting the name.
 void setType(String typestr)
           
 org.jdom2.Document toOSIS()
          Get an OSIS representation of information concerning this Book.
 
Methods inherited from class org.crosswire.jsword.book.basic.AbstractBookMetaData
compareTo, equals, getDriver, getDriverName, getIndexStatus, getKeyType, getLanguage, getLibrary, getLocation, getOsisID, getUnlockKey, hasFeature, hashCode, isEnciphered, isLocked, isQuestionable, isSupported, setDriver, setIndexStatus, setLanguage, setLibrary, setLocation, toString, unlock
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

type

private BookCategory type

name

private String name

initials

private String initials

props

private Map<String,String> props
Constructor Detail

DefaultBookMetaData

public DefaultBookMetaData(BookDriver driver,
                           String name,
                           BookCategory type)
Ctor with some default values. A call to setBook() is still required after this ctor is called

Parameters:
driver - the driver for this book
name - the name of this book
type - the type of this book
Method Detail

getPropertyKeys

public Set<String> getPropertyKeys()
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.

Returns:
the read-only properties for this book

getProperty

public String getProperty(String key)
Description copied from interface: BookMetaData
Get the property or null.

Parameters:
key - the key of the property.
Returns:
the value of the property

putProperty

public void putProperty(String key,
                        String value)
Description copied from interface: BookMetaData
Save to shared storage.

Specified by:
putProperty in interface BookMetaData
Overrides:
putProperty in class AbstractBookMetaData
Parameters:
key - the key of the property to set
value - the value of the property

putProperty

public void putProperty(String key,
                        String value,
                        boolean forFrontend)
Description copied from interface: BookMetaData
Saves an entry to a particular configuration file.

Parameters:
key - the entry that we are saving
value - the value of the entry
forFrontend - when true save to front end storage, else in shared storage

getBookCategory

public BookCategory getBookCategory()
Description copied from interface: BookMetaData
What category of content is this, a Bible or a reference work like a Dictionary or Commentary.

Returns:
The category of book

getName

public String getName()
Description copied from interface: BookMetaData
The name of the book, for example "King James Version" or "Bible in Basic English" or "Greek". This method should not return null or a blank string.

Returns:
The name of this book

getInitials

public String getInitials()
Description copied from interface: BookMetaData
The initials of this book - how people familiar with this book will know it, for example "NIV", "KJV".

Returns:
The book's initials

getInternalName

public String getInternalName()
Description copied from interface: BookMetaData
The internal name of this book.

Returns:
The book's internal name

isLeftToRight

public boolean isLeftToRight()
Description copied from interface: BookMetaData
Return the orientation of the script of the Book. If a book contains more than one script, it refers to the dominate script of the book. This will be used to present Arabic and Hebrew in their proper orientation. Note: some languages have multiple scripts which don't have the same directionality.

Returns:
true if the orientation for the dominate script is LeftToRight.

setInitials

public void setInitials(String initials)
See note on setName() for side effect on setInitials(). If a value of null is used then the initials are defaulted using the name

Parameters:
initials - The initials to set.
See Also:
setName(String)

setName

public void setName(String name)
Setting the name also sets some default initials, so if you wish to set some specific initials then it should be done after setting the name.

Parameters:
name - The name to set.
See Also:
setInitials(String)

setBookCategory

public void setBookCategory(BookCategory aType)
Parameters:
aType - The type to set.

setType

public void setType(String typestr)
Parameters:
typestr - The string version of the type to set.

toOSIS

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

Specified by:
toOSIS in interface BookMetaData
Overrides:
toOSIS in class AbstractBookMetaData
Returns:
the OSIS representation of information about this book.

getScope

public VerseKey getScope()
Returns:
The scope

addRow

private void addRow(OSISUtil.OSISFactory factory,
                    org.jdom2.Element table,
                    String key,
                    String value)

Copyright ยจ 2003-2015