private void Initialize(string baseVersesFormula, VerseFactory verseFactory) { if (baseVersesFormula.IndexOf('(') != -1) { throw new NotSupportedException(string.Format("Brackets in base formula is not supported yet: {0}", baseVersesFormula)); } BaseVersePointer = verseFactory.Func(baseVersesFormula, BookIndex); _allVerses = null; }
//internal int LastChapter //{ // get // { // return BaseVersePointer.TopVerseNumber.GetValueOrDefault().Chapter; // } //} public BibleTranslationDifferencesBaseVersesFormula(int bookIndex, string baseVersesFormula, string parallelVersesFormula, BibleBookDifference.CorrespondenceVerseType correspondenceType, bool skipCheck, bool emptyVerseContent, VerseFactory verseFactory) : base(baseVersesFormula) { this.BookIndex = bookIndex; if (string.IsNullOrEmpty(this.OriginalFormula)) { if (parallelVersesFormula.IndexOfAny(new char[] { 'X', '+' }) != -1) { throw new NotSupportedException( string.Format("For empty base verse must be defined concrete parallel verse: '{0}'", parallelVersesFormula)); } var indexOfColon = OriginalFormula.IndexOf(":"); if (indexOfColon != OriginalFormula.LastIndexOf(":")) { throw new NotSupportedException( string.Format("The verses formula with two colons (':') is not supported yet: '{0}'", OriginalFormula)); } Initialize(parallelVersesFormula, verseFactory); IsEmpty = true; } else { Initialize(baseVersesFormula, verseFactory); } if (IsMultiVerse && correspondenceType != BibleBookDifference.CorrespondenceVerseType.All) { throw new NotSupportedException( "Multi Base Verses are not supported for not strict processing (when correspondenceType != 'All')."); } this.SkipCheck = skipCheck; this.EmptyVerseContent = emptyVerseContent; }