protected internal FtMetaSequenceItem CreateCopyExcludingRedirects(FtMetaFieldList fieldList, FtMetaFieldList sourceFieldList) { FtMetaSequenceItem item = SequenceItemFactory.CreateMetaSequenceItem(); item.AssignExcludingRedirects(this, fieldList, sourceFieldList); return(item); }
internal FtMetaSequence CreateCopyExcludingRedirects(FtMetaFieldList fieldList, FtMetaFieldList sourceFieldList) { FtMetaSequence sequence = SequenceFactory.CreateMetaSequence(); sequence.AssignExcludingRedirects(this, fieldList, sourceFieldList); return(sequence); }
public void AssignExcludingRedirects(FtMetaSequenceItemList source, FtMetaFieldList fieldList, FtMetaFieldList sourceFieldList) { list.Clear(); list.Capacity = source.Count; for (int i = 0; i < source.Count; i++) { FtMetaSequenceItem item = source[i].CreateCopyExcludingRedirects(fieldList, sourceFieldList); Add(item); } }
public void Assign(FtMetaFieldList source) { list.Clear(); list.Capacity = source.Count; for (int i = 0; i < source.Count; i++) { FtMetaField field = source[i].CreateCopy(); Add(field); } }
internal void LoadMeta(FtMetaSequenceItem metaSequenceItem, FtMetaFieldList metaFieldList, FtFieldDefinitionList fieldDefinitionList) { int fieldIdx = metaFieldList.IndexOf(metaSequenceItem.Field); if (fieldIdx < 0) { throw FtInternalException.Create(InternalError.FtSequenceItem_LoadMeta_MetaSequenceItemFieldNotFoundInMetaFieldList, metaSequenceItem.Field.Name); // should never happen } else { fieldDefinition = fieldDefinitionList[fieldIdx]; // fieldDefinitions are in same order as Meta Fields } }
internal void Assign(FtMetaSequenceList source, FtMetaFieldList fieldList, FtMetaFieldList sourceFieldList) { list.Clear(); list.Capacity = source.Count; for (int i = 0; i < source.Count; i++) { FtMetaSequence sequence = source[i].CreateCopyExcludingRedirects(fieldList, sourceFieldList); Add(sequence); } // All Sequences need to be created before we can assign Redirects for (int i = 0; i < Count; i++) { list[i].AssignRedirects(this, source); } }
public FtMeta() { fieldList = new FtMetaFieldList(); fieldList.BeforeRemoveEvent += HandleFieldListBeforeRemoveEvent; fieldList.BeforeClearEvent += HandleFieldListBeforeClearEvent; fieldList.DefaultHeadingConstraintRequiredEvent += HandleFieldDefaultHeadingConstraintRequiredEvent; fieldList.DefaultHeadingQuotedTypeRequiredEvent += HandleFieldDefaultHeadingQuotedTypeRequiredEvent; fieldList.DefaultHeadingAlwaysWriteOptionalQuoteRequiredEvent += HandleFieldDefaultHeadingAlwaysWriteOptionalQuoteRequiredEvent; fieldList.DefaultHeadingWritePrefixSpaceRequiredEvent += HandleFieldDefaultHeadingWritePrefixSpaceRequiredEvent; fieldList.DefaultHeadingPadAlignmentRequiredEvent += HandleFieldDefaultHeadingPadAlignmentRequiredEvent; fieldList.DefaultHeadingPadCharTypeRequiredEvent += HandleFieldDefaultHeadingPadCharTypeRequiredEvent; fieldList.DefaultHeadingPadCharRequiredEvent += HandleFieldDefaultHeadingPadCharRequiredEvent; fieldList.DefaultHeadingTruncateTypeRequiredEvent += HandleFieldDefaultHeadingTruncateTypeRequiredEvent; fieldList.DefaultHeadingTruncateCharRequiredEvent += HandleFieldDefaultHeadingTruncateCharRequiredEvent; fieldList.DefaultHeadingEndOfValueCharRequiredEvent += HandleFieldDefaultHeadingEndOfValueCharRequiredEvent; substitutionList = new FtMetaSubstitutionList(); sequenceList = new FtMetaSequenceList(); Reset(); }
protected internal void AssignExcludingRedirects(FtMetaSequenceItem source, FtMetaFieldList fieldList, FtMetaFieldList sourceFieldList) { int fieldIndex = sourceFieldList.IndexOf(source.Field); if (fieldIndex < 0) { throw FtInternalException.Create(InternalError.FtMetaSequenceItem_AssignExcludingRedirects_SourceFieldNotFound); // should never happen } else { if (fieldIndex >= fieldList.Count) { throw FtInternalException.Create(InternalError.FtMetaSequenceItem_AssignExcludingRedirects_FieldIndexOutOfRange, fieldIndex.ToString()); // should never happen } else { Field = fieldList[fieldIndex]; } } }
internal protected virtual void AssignExcludingRedirects(FtMetaSequence source, FtMetaFieldList fieldList, FtMetaFieldList sourceFieldList) { Name = source.Name; root = source.Root; itemList.AssignExcludingRedirects(source.itemList, fieldList, sourceFieldList); }