## Uses of Interface
org.crosswire.jsword.passage.VerseKey

- Packages that use VerseKey
  Package | Description
  --- | ---
  org.crosswire.jsword.book.basic | The Basic package contains default and abstract implementations of the main Book classes.
  org.crosswire.jsword.passage | The core responsibility of the passage package is to store and collate information about the structure of the Bible - The most important classes are `Passage`, `PassageTally` and `Strongs`.
  org.crosswire.jsword.versification | The core responsibility of the versification package is to understand verse references.

- - ### Uses of VerseKey in org.crosswire.jsword.book.basic

    Methods in org.crosswire.jsword.book.basic that return VerseKey
    Modifier and Type | Method and Description
    --- | ---
    `VerseKey` | DefaultBookMetaData.`getScope()`

  - ### Uses of VerseKey in org.crosswire.jsword.passage

    Classes in org.crosswire.jsword.passage with type parameters of type VerseKey
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `VerseKey<T extends VerseKey>` A VerseKey indicates that a Key has a Versification reference system.

    Subinterfaces of VerseKey in org.crosswire.jsword.passage
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `Passage` A Passage is a specialized Collection of Verses.

    Classes in org.crosswire.jsword.passage that implement VerseKey
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbstractPassage` This is a base class to help with some of the common implementation details of being a Passage.
    `class` | `BitwisePassage` A Passage that is implemented using a BitSet - one for each verse.
    `class` | `DistinctPassage` A Passage that is implemented using a TreeSet of Verses.
    `class` | `PassageTally` Similar to a Passage, but that stores a ranking for each of the Verses that it contains.
    `class` | `RangedPassage` A Passage that is implemented using a TreeSet of VerseRanges.
    `(package private) class` | `ReadOnlyPassage` This is a simple proxy to a real Passage object that denies all attempts to write to it.
    `class` | `RocketPassage` A RocketPassage is a bit and heavy implementation of Passage that goes fairly quickly once let of the leash.
    `(package private) class` | `SynchronizedPassage` This is a simple proxy to a real Passage object that makes all accesses synchronized.
    `class` | `Verse` A Verse is a pointer to a single verse.
    `class` | `VerseRange` A VerseRange is one step between a Verse and a Passage - it is a Verse plus a verseCount.

  - ### Uses of VerseKey in org.crosswire.jsword.versification

    Fields in org.crosswire.jsword.versification declared as VerseKey
    Modifier and Type | Field and Description
    --- | ---
    `private VerseKey` | QualifiedKey.`qualifiedKey`
    `private VerseKey` | QualifiedKey.`wholeKey`

    Fields in org.crosswire.jsword.versification with type parameters of type VerseKey
    Modifier and Type | Field and Description
    --- | ---
    `private Map<VerseKey,List<QualifiedKey>>` | VersificationToKJVMapper.`toKJVMappings`

    Methods in org.crosswire.jsword.versification that return VerseKey
    Modifier and Type | Method and Description
    --- | ---
    `VerseKey` | QualifiedKey.`getKey()`
    `private VerseKey` | VersificationsMapper.`getKeyFromQualifiedKeys(Versification versification, List<QualifiedKey> kjvVerses)`
    `private VerseKey` | VersificationToKJVMapper.`getNonEmptyKey(Map<QualifiedKey,Passage> mappings, QualifiedKey key)` Gets a non-empty key list, either new or the one existing in the map already.
    `private VerseKey` | VersificationsMapper.`guessKeyFromKjvVerses(Versification targetVersification, List<QualifiedKey> kjvVerses)` This is a last attempt at trying to get something, on the basis that something is better than nothing.
    `VerseKey` | VersificationsMapper.`mapVerse(Verse v, Versification targetVersification)`
    `VerseKey` | VersificationToKJVMapper.`unmap(QualifiedKey kjvVerse)` Converts a KJV verse to the target versification, from a qualified key, rather than a real key

    Methods in org.crosswire.jsword.versification with parameters of type VerseKey
    Modifier and Type | Method and Description
    --- | ---
    `static QualifiedKey` | QualifiedKey.`create(VerseKey k)` Create a QualifiedKey from a Verse or a VerseRange.
    `private QualifiedKey` | VersificationToKJVMapper.`getOffsetQualifiedKey(Versification versification, String versesKey, VerseKey offsetBasis)` Deals with offset markers, indicating a passage is +x or -x verses from this one.
    `private QualifiedKey` | VersificationToKJVMapper.`getRange(Versification versification, String versesKey, VerseKey offsetBasis)` Expands a reference to all its verses
    `private void` | VersificationToKJVMapper.`reportCardinalityError(VerseKey leftKeys, VerseKey kjvKeys)` If for some reason cardinalities of keys are different, we report it.
    `private void` | VersificationToKJVMapper.`reportCardinalityError(VerseKey leftKeys, VerseKey kjvKeys)` If for some reason cardinalities of keys are different, we report it.