public FtMetaSequenceItem New() { FtMetaSequenceItem result = SequenceItemFactory.CreateMetaSequenceItem(); Add(result); return(result); }
protected internal FtMetaSequenceItem CreateCopyExcludingRedirects(FtMetaFieldList fieldList, FtMetaFieldList sourceFieldList) { FtMetaSequenceItem item = SequenceItemFactory.CreateMetaSequenceItem(); item.AssignExcludingRedirects(this, fieldList, sourceFieldList); return(item); }
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); } }
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); } }
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 } }
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); } }
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); } }
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); }
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); }
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]; } } }
public void Remove(FtMetaSequenceItem item) { list.Remove(item); }
private void Add(FtMetaSequenceItem item) { list.Add(item); }