//---------------------------------------------------------------------------
#endregion
//---------------------------------------------------------------------------
#region Methods
//---------------------------------------------------------------------------
/// <summary>
/// Метод вызывается при добавлении в коллекцию, для установки свойства
/// _Device. Данный объект modbus-устройства, является владельцем данной
/// коллекции регистров-хранения. Если владелец не равен null, то данная
/// коллекция уже принадлежит другой коллекции. При это вызывается
/// исключение
/// </summary>
/// <param name="owner">Владелец данного файла</param>
internal void SetOwner(Device owner)
{
if (_Device == null)
{
_Device = owner;
_RecordsCollection.SetOwner(owner);
}
else
{
if (owner == null)
{
// Освобождаем параметр от владельца
_Device = owner;
}
else
{
// Если устройство, которому принадлежит данный файл
// эквивалентен устанавливаемому, тогда ничего не делаем.
// Здесь нет ошибки. В противном случае, генерируем исключение
if (_Device.Equals(owner) == false)
{
throw new InvalidOperationException(
"Данный файл уже принадлежит другому устройству");
}
}
}
}