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

Martin Denham mjdenham at gmail.com
Fri Apr 18 14:07:56 MST 2014


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.crosswire.org/pipermail/jsword-devel/attachments/20140418/983145c6/attachment.html>


More information about the jsword-devel mailing list