[jsword-devel] Patch for book stuff

Joe Walker jsword-devel@crosswire.org
Thu, 01 Apr 2004 23:25:01 +0100


I'm doing this quickly, so sorry If I'm not looking properly. Why do we 
need isCompressedBackendSupported() when the backend can tell you 
itself. I guess we've not ctor'ed it yet?

Applying anyway. Virtually untested bar running it up.

Joe.

DM Smith wrote:
> I have made a few more changes.
> I added isSupported to Backend and implemented it in each derived class. 
> This returns true if the backend is implemented.
> 
> I added isSupported(SwordBookMetaData sbmd) to ModuleType to have it 
> return whether it or its backend is supported.
> I modified SwordBookMetaData.isSupported to:
>    see if it has a name
>    see if it has a supported ModuleType (it used to just check to see 
> the ModuleType had a BookType)
>    see if it is locked
>    to output all the reasons the book is not supported. (I moved 
> diagnostics here from the ctor and from SwordInstaller)
> 
> I added more constants for HISTORY to ConfigEntry so that I could add 
> the diagnostic on unknown ConfigEntries to SBMD.
> 
> I changed the parsing in SBMD to be tolerant of the errors I mentioned 
> in an earlier e-mail.
> 
> I changed the writing of the SBMD to file to be a copy of the original.
> 
> I modified SwordInstaller
>    to not install a book if it is already installed (This fixes a bug)
>    by moving the check for locked into SBMD.isSupported
> 
> I changed APIexamples by adding a main to it and changing the book to 
> KJV (I could not find AV).
> 
> I also made numerous changes to Books. Basically, Books had two 
> different contracts/patterns. One of a class factory or utility class w/ 
> the static methods and the other of a singlton. It should use one or the 
> other. So I did the singleton.
> First, I made all the static methods except installed() to be member 
> methods.
> Likewise for all the static fields, except installed and log.
> This resulted in trivial changes to files which called the static 
> methods to use the installed() method.
> I moved the static initialization of the drivers into member methods and 
> called them from the constructor.
> As is my habit, I constructed fields in the constructor.
> I finished the synchronization of the class since some of the accessors 
> could be used at the same time as the modifiers.
> 
> I added getFullNameArray to Books because it seemed to belong ther and 
> not in OptionsAction
> 
> I changed the method getBookMetaData(String name) to check getInitials 
> as well. This is what was expected by APIExamples.
> 
> Finally, I merged Joe's latest changes to Books.
> 
> The zip file contains the patch and Books.java in case the patch does 
> not work.
> 
> _________________________________________________________________
> Find a broadband plan that fits. Great local deals on high-speed 
> Internet access. 
> https://broadband.msn.com/?pgmarket=en-us/go/onm00200360ave/direct/01/