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.

Distribution Licence:
JSword is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2 as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
The License is available on the internet here, or by writing to: Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
The copyright to this program is held by it's authors.

Version:
$Id: AbstractBookMetaData.java,v 1.21 2005/03/21 02:37:28 dmsmith Exp $
Author:
Joe Walker [joe at eireneh dot com]
See Also:
Licence

Field Summary
static String DEFAULT_LANG_CODE
           
private  String displayName
           
private  BookDriver driver
           
private  String fullName
           
private  IndexStatus indexStatus
           
private static ResourceBundle languages
           
private  EventListenerList listeners
          The list of property change listeners
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_DRIVER, KEY_INDEXSTATUS, KEY_INITIALS, KEY_LANGUAGE, KEY_NAME, KEY_TYPE
 
Constructor Summary
AbstractBookMetaData()
           
 
Method Summary
 void addPropertyChangeListener(PropertyChangeListener listener)
          Adds a PropertyChangeListener to the listener list.
 int compareTo(Object obj)
           
private  String computeFullName()
           
 boolean equals(Object obj)
           
protected  void firePropertyChange(String propertyName, Object oldValue, Object newValue)
          Reports bound property changes.
 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)
           
 boolean hasFeature(FeatureType feature)
          Return whether the feature is supported by the book.
 int hashCode()
           
protected  void putProperty(String key, Object value)
           
 void removePropertyChangeListener(PropertyChangeListener listener)
          Removes a PropertyChangeListener from the listener list.
 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()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.crosswire.jsword.book.BookMetaData
getInitials, getName, getType, 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

listeners

private transient EventListenerList listeners
The list of property change listeners


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()

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,
                           Object 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

addPropertyChangeListener

public void addPropertyChangeListener(PropertyChangeListener listener)
Description copied from interface: BookMetaData
Adds a PropertyChangeListener to the listener list. The listener is registered for all properties. However the only one likely to change at the time of writing is the Index Status.

A PropertyChangeEvent will get fired in response to setting a bound property, such as setIndexStatus.

Specified by:
addPropertyChangeListener in interface BookMetaData
Parameters:
listener - the PropertyChangeListener to be added

removePropertyChangeListener

public void removePropertyChangeListener(PropertyChangeListener listener)
Description copied from interface: BookMetaData
Removes a PropertyChangeListener from the listener list.

Specified by:
removePropertyChangeListener in interface BookMetaData
Parameters:
listener - the PropertyChangeListener to be removed

firePropertyChange

protected void firePropertyChange(String propertyName,
                                  Object oldValue,
                                  Object newValue)
Reports bound property changes. If oldValue and newValue are not equal and the PropertyChangeEvent listener list isn't empty, then fire a PropertyChange event to each listener.

Parameters:
propertyName - the programmatic name of the property that was changed
oldValue - the old value of the property (as an Object)
newValue - the new value of the property (as an Object)
See Also:
PropertyChangeSupport

Copyright ? 2003-2004