[jsword-devel] Changes to SwordBookDriver

DM Smith jsword-devel@crosswire.org
Fri, 19 Mar 2004 18:27:03 -0500


This is a multi-part message in MIME format.

------=_NextPart_000_2cfb_12e1_230e
Content-Type: text/plain; format=flowed

I have made the changes that I mentioned in the earlier note. The key upshot 
is that it is now possible to run the program from a clean install, not 
change any configuraton values, download one or more books and they will be 
seen the next time the program starts up.

I also moved some code out of SwordBookDriver and into ModuleType and this 
required a change in SwordBookMetaData.

In the method createBook there was a large, cascading if/then/else which 
many times is an indication that there is an opportunity for better 
placement of code.

It seemed to me that the generation of the Backend and the Book was closely 
tied to the kind of ModuleType. So I moved the functionality into each of 
the ModuleTypes. I was really pleased that the ModuleType class implemented 
the Enum pattern. Besides being a slick way of creating an enumeration 
(until JDK1.5), it also allows for the addition of behavior to the 
enumerated objects (which I hope will be a part of the jdk1.5 enum 
facility).

Each ModuleType was given the methods getBackend and getBook. The class was 
given the method createBook, which contained the core logic of the original 
createBook, but now was reduced to a few lines of code. I also moved the 
method getCompressedBackend.

The one difficulty I had with it was that apache's Enum class cannot handle 
objects which are created as "adapters". I had to use a pattern that I had 
used previously. The problem is that when you create an object and 
(re)define some methods, it essentially is a subclass. But it is the 
superclass that does the lookup based upon its class name. If the Enum class 
had used a local hash rather than a global one and used the name of the 
object as a key, it would have worked.

I have attached a zip of the patch and the actual changed files.

_________________________________________________________________
Free up your inbox with MSN Hotmail Extra Storage. Multiple plans available. 
http://click.atdmt.com/AVE/go/onm00200362ave/direct/01/

------=_NextPart_000_2cfb_12e1_230e
Content-Type: application/x-zip-compressed; name="patchinstall.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="patchinstall.zip"

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
AAEBAADzOwAAAAA=


------=_NextPart_000_2cfb_12e1_230e--