org.crosswire.jsword.passage
Class VerseRangeFactory

java.lang.Object
  extended by org.crosswire.jsword.passage.VerseRangeFactory

public final class VerseRangeFactory
extends Object

A factory that creates VerseRanges from user input.

Author:
Joe Walker, DM Smith
See Also:
The GNU Lesser General Public License for details.

Constructor Summary
private VerseRangeFactory()
          prevent instantiation
 
Method Summary
static VerseRange fromString(Versification v11n, String orginal)
          Construct a VerseRange from a human readable string.
static VerseRange fromString(Versification v11n, String original, VerseRange basis)
          Construct a VerseRange from a String and a VerseRange.
private static VerseRange fromText(Versification v11n, String original, String startVerseDesc, String endVerseDesc, VerseRange basis)
          The internal mechanism by which we construct a VerseRange
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

VerseRangeFactory

private VerseRangeFactory()
prevent instantiation

Method Detail

fromString

public static VerseRange fromString(Versification v11n,
                                    String orginal)
                             throws NoSuchVerseException
Construct a VerseRange from a human readable string. For example "Gen 1:1-3" in case the user does not want to have their typing 'fixed' by a meddling patronizing computer.

Parameters:
v11n - The versification for this VerseRange
orginal - The textual representation
Returns:
the verse range for the string
Throws:
NoSuchVerseException - If the text can not be understood

fromString

public static VerseRange fromString(Versification v11n,
                                    String original,
                                    VerseRange basis)
                             throws NoSuchVerseException
Construct a VerseRange from a String and a VerseRange. For example given "2:2" and a basis of Gen 1:1-2 the result would be range of 1 verse starting at Gen 2:2. Also given "2:2-5" and a basis of Gen 1:1-2 the result would be a range of 5 verses starting at Gen 1:1.

This constructor is different from the (String, Verse) constructor in that if the basis is a range that exactly covers a chapter and the string is a single number, then we assume that the number refers to a chapter and not to a verse. This allows us to have a Passage like "Gen 1,2" and have the 2 understood as chapter 2 and not verse 2 of Gen 1, which would have occurred otherwise.

Parameters:
v11n - The versification for this VerseRange
original - The string describing the verse e.g "2:2"
basis - The verse that forms the basis by which to understand the original.
Returns:
the verse range
Throws:
NoSuchVerseException - If the reference is illegal

fromText

private static VerseRange fromText(Versification v11n,
                                   String original,
                                   String startVerseDesc,
                                   String endVerseDesc,
                                   VerseRange basis)
                            throws NoSuchVerseException
The internal mechanism by which we construct a VerseRange

Parameters:
v11n - The versification for this VerseRange
original - The string describing the verse e.g "2:2"
startVerseDesc - The part of the range before the range separator
endVerseDesc - The part of the range after the range separator
basis - The verse that forms the basis by which to understand the original.
Throws:
NoSuchVerseException - If the reference is illegal

Copyright ยจ 2003-2015