/// <summary> /// Параметризованный конструктор /// </summary> /// <param name="sequenceRow">Импортируемые данные</param> public StreamSequence(SequenceRow sequenceRow) : this(new sStreamData(sequenceRow)) { for (int i = 0; i < sequenceRow.sequenceEvent.Length; i++) { SequenceEvent obj = sequenceRow.sequenceEvent[i]; if (i == 0) { Name = obj.dataString; continue; } ObjectSequence @object = (ObjectSequence)GetNewObject(eTypeObjectCollection._1D, i - 1); if (obj.isTable0D) { if (i > 1 && (this[eTypeObjectCollection._1D][i - 2].Type == eTypeObjectStream.TableShape || this[eTypeObjectCollection._1D][i - 2].Type == eTypeObjectStream.Continue)) { @object.Type = eTypeObjectStream.Continue; } else { @object.Type = eTypeObjectStream.TableShape; @object.TableName = obj.tableName0D; } } else if (obj.isTable1D) { @object.Type = eTypeObjectStream.Table; @object.TableName = obj.tableName1D; } else if (obj.isTable5D) { @object.Type = eTypeObjectStream.Table1D2D; @object.TableName = obj.tableName5D; } else if (obj.isAqustion) { @object.Type = eTypeObjectStream.Acquisition; @object.Acquisition = new AcquisitionObject(obj.sequenceAcquation, i); } else if (obj.fileAsynchronus != null && obj.dataString == "@AS") { @object.Type = eTypeObjectStream.AsynchronousStart; @object.Asynchronus = new AsynchronusObject(obj.fileAsynchronus); } else if (sequenceRow.defalut != obj.dataString) { @object.LoadText(obj.dataString); } ((ObjectCollection)this[eTypeObjectCollection._1D]).Add(@object); if (_collectionHash.Count == 1) { continue; } @object = (ObjectSequence)GetNewObject(eTypeObjectCollection._2D, i - 1); if (obj.isTable2D) { @object.Type = eTypeObjectStream.Table; @object.TableName = obj.tableName2D; } ((ObjectCollection)this[eTypeObjectCollection._2D]).Add(@object); @object = (ObjectSequence)GetNewObject(eTypeObjectCollection._3D, i - 1); if (obj.isTable3D) { @object.Type = eTypeObjectStream.Table; @object.TableName = obj.tableName3D; } ((ObjectCollection)this[eTypeObjectCollection._3D]).Add(@object); @object = (ObjectSequence)GetNewObject(eTypeObjectCollection._4D, i - 1); if (obj.isTable4D) { @object.Type = eTypeObjectStream.Table; @object.TableName = obj.tableName4D; } ((ObjectCollection)this[eTypeObjectCollection._4D]).Add(@object); } }
/// <summary> /// Клонирует общие данные объектов /// </summary> /// <param name="obj">Клонируемый объект</param> protected void CloneData(ObjectSequence obj) { obj._type = _type; obj._object = (ObjectSequence)_object.Clone( ); obj.TypeCollection = TypeCollection; }
/// <summary> /// Добавляет объект в коллекцию /// </summary> /// <param name="@object">Вставляемый объект</param> public void Add(ObjectSequence @object) { _objects.Add(@object); }