Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   Related Pages  

sword::VerseKey Class Reference

Class VerseKey The SWKey implementation used for verse based modules like Bibles or commentaries. More...

#include <versekey.h>

Inheritance diagram for sword::VerseKey:

Inheritance graph
[legend]
Collaboration diagram for sword::VerseKey:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 VerseKey (const char *ikey=0)
 VerseKey Constructor - initializes Instance of VerseKey.

 VerseKey (const SWKey *ikey)
 VerseKey Constructor - initializes instance of VerseKey.

 VerseKey (const char *min, const char *max)
 VerseKey Constructor - initializes instance of VerseKey with boundariess - see also LowerBound() and UpperBound().

 VerseKey (const VerseKey &k)
 VerseKey Copy Constructor - will create a new VerseKey based on an existing one.

virtual ~VerseKey ()
 VerseKey Destructor Cleans up an instance of VerseKey.

VerseKey & LowerBound (const char *lb)
 sets the lower boundary for this VerseKey and returns the new boundary

VerseKey & UpperBound (const char *ub)
 sets the upper boundary for this VerseKey and returns the new boundary

VerseKey & LowerBound () const
 gets the lower boundary of this VerseKey

VerseKey & UpperBound () const
 gets the upper boundary of this VerseKey

void ClearBounds ()
 clears the boundaries of this VerseKey

virtual SWKeyclone () const
 Creates a new SWKey based on the current VerseKey see also the Copy Constructor.

virtual const char * getText () const
 refreshes keytext before returning if cast to a (char *) is requested

virtual const char * getShortText () const
virtual void setText (const char *ikey)
 Equates this SWKey to a character string.

virtual void copyFrom (const SWKey &ikey)
 Equates this SWKey to another SWKey object.

virtual void copyFrom (const VerseKey &ikey)
 Equates this VerseKey to another VerseKey.

virtual void setPosition (SW_POSITION newpos)
 Positions this key.

virtual void decrement (int steps)
 Decrements key a number of verses.

virtual void increment (int steps)
 Increments key a number of verses.

virtual char Traversable ()
virtual const char * getBookName () const
virtual const char * getBookAbbrev () const
virtual char Testament () const
 Gets testament.

virtual char Book () const
 Gets book.

virtual int Chapter () const
 Gets chapter.

virtual int Verse () const
 Gets verse.

virtual char Testament (char itestament)
 Sets/gets testament.

virtual char Book (char ibook)
 Sets/gets book.

virtual int Chapter (int ichapter)
 Sets/gets chapter.

virtual int Verse (int iverse)
 Sets/gets verse.

virtual void Normalize (char autocheck=0)
 checks limits and normalizes if necessary (e.g.

virtual char AutoNormalize (char iautonorm=((char)((unsigned char)(1L<< (sizeof(char)*8-1))-1)))
 Sets/gets flag that tells VerseKey to automatically normalize itself when modified.

virtual char Headings (char iheadings=((char)((unsigned char)(1L<< (sizeof(char)*8-1))-1)))
 Sets/gets flag that tells VerseKey to include chapter/book/testament/module headings.

virtual long NewIndex () const
virtual long Index () const
 Gets index based upon current verse.

virtual long Index (long iindex)
 Sets index based upon current verse.

virtual const char * getOSISRef () const
virtual ListKey ParseVerseList (const char *buf, const char *defaultKey="Genesis 1:1", bool expandRange=false)
virtual const char * getRangeText () const
virtual int compare (const SWKey &ikey)
 Compares another SWKey object.

virtual int _compare (const VerseKey &ikey)
 Compares another VerseKey object.

virtual void setBookAbbrevs (const struct abbrev *bookAbbrevs, unsigned int size=0)
virtual void setBooks (const char *iBMAX, struct sbook **ibooks)
virtual void setLocale (const char *name)
virtual const char * getLocale () const
SWKeyoperator= (const char *ikey)
SWKeyoperator= (const SWKey &ikey)
SWKeyoperator= (SW_POSITION pos)
 operator const char * () const
bool operator== (const SWKey &ikey)
bool operator!= (const SWKey &ikey)
virtual bool operator> (const SWKey &ikey)
virtual bool operator< (const SWKey &ikey)
virtual bool operator>= (const SWKey &ikey)
virtual bool operator<= (const SWKey &ikey)
SWKeyoperator-= (int steps)
SWKeyoperator+= (int steps)
SWKeyoperator++ (int)
SWKeyoperator-- (int)
virtual SWKeyoperator= (const VerseKey &ikey)

Public Attributes

const char * BMAX
sbook ** books

Static Public Attributes

const char builtin_BMAX [2] = {39, 27}
sbook * builtin_books [2] = {0,0}
const struct abbrev builtin_abbrevs []

Private Member Functions

int getBookAbbrev (const char *abbr)
void initBounds () const
void initstatics ()
 initialize and allocate books array

void init ()
 initializes this VerseKey()

void freshtext () const
 Refresh keytext based on testament|book|chapter|verse default auto normalization to true default display headings option is false.

virtual char parse ()
 Parse a character array into testament|book|chapter|verse.

int findindex (long *array, int size, long value)
 Binary search to find the index closest, but less than the given value.


Private Attributes

ListKey internalListKey
const struct abbrev * abbrevs
char * locale
int abbrevsCnt
signed char testament
 The Testament: 0 - Old; 1 - New.

signed char book
signed int chapter
signed int verse
char autonorm
 flag for auto normalization

char headings
 flag for headings on/off

VerseKey * lowerBound
VerseKey * upperBound

Static Private Attributes

SWClass classdef
long * offsets [2][2] = {{VerseKey::otbks, VerseKey::otcps}, {VerseKey::ntbks, VerseKey::ntcps}}
int offsize [2][2]
int instance = 0
 number of instantiated VerseKey objects or derivitives

sbook otbooks []
sbook ntbooks []
long otbks []
long otcps []
long ntbks []
long ntcps []
int vm []
LocaleCache localeCache

Detailed Description

Class VerseKey The SWKey implementation used for verse based modules like Bibles or commentaries.


Constructor & Destructor Documentation

sword::VerseKey::VerseKey const char *    ikey = 0
 

VerseKey Constructor - initializes Instance of VerseKey.

Parameters:
ikey text key (will take various forms of 'BOOK CH:VS'. See parse() for more detailed information)

sword::VerseKey::VerseKey const SWKey   ikey
 

VerseKey Constructor - initializes instance of VerseKey.

Parameters:
ikey base key (will take various forms of 'BOOK CH:VS'. See parse() for more detailed information)

sword::VerseKey::VerseKey const char *    min,
const char *    max
 

VerseKey Constructor - initializes instance of VerseKey with boundariess - see also LowerBound() and UpperBound().

Parameters:
min the lower boundary of the new VerseKey
max the upper boundary of the new VerseKey

sword::VerseKey::VerseKey const VerseKey &    k
 

VerseKey Copy Constructor - will create a new VerseKey based on an existing one.

Parameters:
k the VerseKey to copy from


Member Function Documentation

int sword::VerseKey::_compare const VerseKey &    ikey [virtual]
 

Compares another VerseKey object.

Parameters:
ikey key to compare with this one
Returns:
>0 if this VerseKey is greater than compare VerseKey, <0 if this VerseKey is smaller than compare VerseKey, 0 if the keys are the same

char sword::VerseKey::AutoNormalize char    iautonorm = ((char)((unsigned char)(1L<< (sizeof(char)*8-1))-1)) [virtual]
 

Sets/gets flag that tells VerseKey to automatically normalize itself when modified.

Parameters:
iautonorm value which to set autonorm [MAXPOS(char)] - only get
Returns:
if unchanged -> value of autonorm, if changed -> previous value of autonorm

char sword::VerseKey::Book char    ibook [virtual]
 

Sets/gets book.

Parameters:
ibook value which to set book [MAXPOS(char)] - only get
Returns:
if unchanged -> value of book, if changed -> previous value of book

char sword::VerseKey::Book   const [virtual]
 

Gets book.

Returns:
value of book

int sword::VerseKey::Chapter int    ichapter [virtual]
 

Sets/gets chapter.

Parameters:
ichapter value which to set chapter [MAXPOS(int)] - only get
Returns:
if unchanged -> value of chapter, if changed -> previous value of chapter

int sword::VerseKey::Chapter   const [virtual]
 

Gets chapter.

Returns:
value of chapter

int sword::VerseKey::compare const SWKey   ikey [virtual]
 

Compares another SWKey object.

Parameters:
ikey key to compare with this one
Returns:
>0 if this VerseKey is greater than compare SWKey, <0 if this VerseKey is smaller than compare SWKey, 0 if the keys are the same

Reimplemented from sword::SWKey.

void sword::VerseKey::copyFrom const SWKey   ikey [virtual]
 

Equates this SWKey to another SWKey object.

Parameters:
ikey other swkey object

Reimplemented from sword::SWKey.

void sword::VerseKey::decrement int    steps [virtual]
 

Decrements key a number of verses.

Parameters:
steps Number of verses to jump backward
Returns:
*this

Reimplemented from sword::SWKey.

int sword::VerseKey::findindex long *    array,
int    size,
long    value
[private]
 

Binary search to find the index closest, but less than the given value.

Parameters:
array long * to array to search
size number of elements in the array
value value to find
Returns:
the index into the array that is less than but closest to value

char sword::VerseKey::Headings char    iheadings = ((char)((unsigned char)(1L<< (sizeof(char)*8-1))-1)) [virtual]
 

Sets/gets flag that tells VerseKey to include chapter/book/testament/module headings.

Parameters:
iheadings value which to set headings [MAXPOS(char)] - only get
Returns:
if unchanged -> value of headings, if changed -> previous value of headings

void sword::VerseKey::increment int    steps [virtual]
 

Increments key a number of verses.

Parameters:
steps Number of verses to jump forward
Returns:
*this

Reimplemented from sword::SWKey.

long sword::VerseKey::Index long    iindex [virtual]
 

Sets index based upon current verse.

Parameters:
iindex value to set index to
Returns:
offset

Reimplemented from sword::SWKey.

long sword::VerseKey::Index   const [virtual]
 

Gets index based upon current verse.

Returns:
offset

Reimplemented from sword::SWKey.

VerseKey & sword::VerseKey::LowerBound   const
 

gets the lower boundary of this VerseKey

Returns:
the lower boundary of this VerseKey

VerseKey & sword::VerseKey::LowerBound const char *    lb
 

sets the lower boundary for this VerseKey and returns the new boundary

Parameters:
lb the new lower boundary for this VerseKey
Returns:
the lower boundary the key was set to

void sword::VerseKey::Normalize char    autocheck = 0 [virtual]
 

checks limits and normalizes if necessary (e.g.

Matthew 29:47 = Mark 2:2). If last verse is exceeded, key is set to last Book CH:VS

Returns:
*this

char sword::VerseKey::parse   [private, virtual]
 

Parse a character array into testament|book|chapter|verse.

void sword::VerseKey::setPosition SW_POSITION    newpos [virtual]
 

Positions this key.

Parameters:
newpos Position to set to.
Returns:
*this

Reimplemented from sword::SWKey.

virtual void sword::VerseKey::setText const char *    ikey [inline, virtual]
 

Equates this SWKey to a character string.

Parameters:
ikey string to set this key to

Reimplemented from sword::SWKey.

char sword::VerseKey::Testament char    itestament [virtual]
 

Sets/gets testament.

Parameters:
itestament value which to set testament [MAXPOS(char)] - only get
Returns:
if unchanged -> value of testament, if changed -> previous value of testament

char sword::VerseKey::Testament   const [virtual]
 

Gets testament.

Returns:
value of testament

VerseKey & sword::VerseKey::UpperBound   const
 

gets the upper boundary of this VerseKey

Returns:
the upper boundary of this VerseKey

VerseKey & sword::VerseKey::UpperBound const char *    ub
 

sets the upper boundary for this VerseKey and returns the new boundary

Parameters:
ub the new upper boundary for this VerseKey
Returns:
the upper boundary the key was set to

int sword::VerseKey::Verse int    iverse [virtual]
 

Sets/gets verse.

Parameters:
iverse value which to set verse [MAXPOS(int)] - only get
Returns:
if unchanged -> value of verse, if changed -> previous value of verse

int sword::VerseKey::Verse   const [virtual]
 

Gets verse.

Returns:
value of verse


The documentation for this class was generated from the following files:
Generated on Fri Feb 28 22:01:49 2003 for The Sword Project by doxygen1.3-rc3