Пример #1
0
        protected internal FtMetaSequenceItem CreateCopyExcludingRedirects(FtMetaFieldList fieldList, FtMetaFieldList sourceFieldList)
        {
            FtMetaSequenceItem item = SequenceItemFactory.CreateMetaSequenceItem();

            item.AssignExcludingRedirects(this, fieldList, sourceFieldList);
            return(item);
        }
Пример #2
0
        internal FtMetaSequence CreateCopyExcludingRedirects(FtMetaFieldList fieldList, FtMetaFieldList sourceFieldList)
        {
            FtMetaSequence sequence = SequenceFactory.CreateMetaSequence();

            sequence.AssignExcludingRedirects(this, fieldList, sourceFieldList);
            return(sequence);
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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);
            }
        }
Пример #5
0
        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
            }
        }
Пример #6
0
        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);
            }
        }
Пример #7
0
        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();
        }
Пример #8
0
        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];
                }
            }
        }
Пример #9
0
        internal protected virtual void AssignExcludingRedirects(FtMetaSequence source, FtMetaFieldList fieldList, FtMetaFieldList sourceFieldList)
        {
            Name = source.Name;
            root = source.Root;

            itemList.AssignExcludingRedirects(source.itemList, fieldList, sourceFieldList);
        }