[jsword-devel] Mapping verses to a v11n in which the verse does not exist

Chris Burrell chris at burrell.me.uk
Fri Apr 18 14:32:03 MST 2014


Reversify just takes a reference and applies it to the other v11n without
any mapping.
Mapping to Intro.0.0 seems like a bug. Should either map to empty verse
range, or null (empty verse range would be my pref).

In your use case, it should map across to Sir.1.1. I suspect it's because
the reversify attempts to reversify first to KJV. The reason for having a
'qualifiedKey' wrapper is exactly for this purpose, to preserve the names
of keys that aren't recognised, which doesn't seem to happen. We should
check the output of reversify and cater for this.

Chris



On 18 April 2014 22:07, Martin Denham <mjdenham at gmail.com> wrote:

> With split screens I try to map all verses in the left v11n to whatever
> the right v11n is and just display 'Not found in document' if the verse is
> not in the right v11n but I am having a problem with this approach because
> the verses not in the right v11n are currently being mapped to 'Bible
> Introduction 0:0'.
>
> This test hopefully shows the problem:
>
>         final VersificationsMapper mapper =
> VersificationsMapper.instance();
>         Verse CathSir1_1 = new Verse(CATHOLIC, BibleBook.SIR, 1, 1);
>         // map Sirach.1.1 to KJV where it obviously does not exist
>         Key kjvSir1_1 = mapper.mapVerse(CathSir1_1, KJV);
>         // In the debugger the returned RangedPassage appears to contain
> Sir.1.1
>         // but however I try to get the verse it gets changed to Bible
> Introduction 0:0
>         Verse verse1 = KeyUtil.getVerse(kjvSir1_1);
>         System.out.println(verse1); // PROBLEM: Bible Introduction 0:0
> (not Sir.1.1)
>
> Am I trying to do something that can't be done?
>
> I notice that the v11n mapping code uses QualifiedKey.reversify which has
> the warning:
>     /**
>      * Convert this QualifiedKey from one Versification to another.
>      * This is a potentially dangerous operation that does no mapping
>      * from one versification to another. Use it only when it is known
>      * to be safe.
>      */
>
> Thanks
> Martin
>
> _______________________________________________
> jsword-devel mailing list
> jsword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/jsword-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.crosswire.org/pipermail/jsword-devel/attachments/20140418/41fc84f5/attachment.html>


More information about the jsword-devel mailing list