Exemple #1
0
        public FtMetaSequenceItem New()
        {
            FtMetaSequenceItem result = SequenceItemFactory.CreateMetaSequenceItem();

            Add(result);
            return(result);
        }
Exemple #2
0
        protected internal FtMetaSequenceItem CreateCopyExcludingRedirects(FtMetaFieldList fieldList, FtMetaFieldList sourceFieldList)
        {
            FtMetaSequenceItem item = SequenceItemFactory.CreateMetaSequenceItem();

            item.AssignExcludingRedirects(this, fieldList, sourceFieldList);
            return(item);
        }
Exemple #3
0
 internal protected void LoadMetaSequenceRedirects(FtMetaSequenceItem metaSequenceItem, FtMetaSequenceList metaSequenceList, FtSequenceList sequenceList)
 {
     for (int i = 0; i < metaSequenceItem.RedirectList.Count; i++)
     {
         int redirectType            = metaSequenceItem.RedirectList[i].Type;
         FtSequenceRedirect redirect = redirectList.New(redirectType);
         redirect.LoadMeta(metaSequenceItem.RedirectList[i], metaSequenceList, sequenceList);
     }
 }
Exemple #4
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);
            }
        }
Exemple #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
            }
        }
Exemple #6
0
 public void MoveItemToAfter(int fromIdx, int afterIdx)
 {
     if ((afterIdx != fromIdx) && (afterIdx != (fromIdx - 1)))
     {
         FtMetaSequenceItem item = list[fromIdx];
         list.RemoveAt(fromIdx);
         int insertIdx;
         if (afterIdx > fromIdx)
         {
             insertIdx = afterIdx;
         }
         else
         {
             insertIdx = ++afterIdx;
         }
         list.Insert(insertIdx, item);
     }
 }
Exemple #7
0
 public void MoveItemToBefore(int fromIdx, int beforeIdx)
 {
     if ((beforeIdx != fromIdx) && (beforeIdx != (fromIdx + 1)))
     {
         FtMetaSequenceItem item = list[fromIdx];
         list.RemoveAt(fromIdx);
         int insertIdx;
         if (beforeIdx < fromIdx)
         {
             insertIdx = beforeIdx;
         }
         else
         {
             insertIdx = --beforeIdx;
         }
         list.Insert(insertIdx, item);
     }
 }
Exemple #8
0
        internal bool AnyItemWithConstantFieldHasRedirects(out int itemIndex)
        {
            itemIndex = -1;
            bool result = false;

            for (int i = 0; i < ItemList.Count; i++)
            {
                FtMetaSequenceItem item = ItemList[i];

                if (item.HasConstantFieldAndHasRedirects())
                {
                    itemIndex = i;
                    result    = true;
                    break;
                }
            }

            return(result);
        }
Exemple #9
0
        internal bool AnyItemWithNullField(out int itemIndex)
        {
            itemIndex = -1;
            bool result = false;

            for (int i = 0; i < ItemList.Count; i++)
            {
                FtMetaSequenceItem item = ItemList[i];

                if (item.Field == null)
                {
                    itemIndex = i;
                    result    = true;
                    break;
                }
            }

            return(result);
        }
Exemple #10
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];
                }
            }
        }
Exemple #11
0
 public void Remove(FtMetaSequenceItem item)
 {
     list.Remove(item);
 }
Exemple #12
0
 private void Add(FtMetaSequenceItem item)
 {
     list.Add(item);
 }