using ProjectAirplaneWithRadar.Drawnings;
namespace ProjectAirplaneWithRadar.CollectionGenericObjects
{
///
/// Интерфейс описания действий для набора хранимых объектов
///
/// Параметр: ограничение - ссылочный тип
public interface ICollectionGenericObjects
where T : class
{
///
/// Количество объектов в коллекции
///
int Count { get; }
///
/// Установка максимального количества элементов
///
int MaxCount { get; set; }
///
/// Добавление объекта в коллекцию
///
/// Добавляемый объект
/// Сравнение двух объектов
/// true - вставка прошла удачно, false - вставка не удалась
int Insert(T obj, IEqualityComparer? comparer = null);
///
/// Добавление объекта в коллекцию на конкретную позицию
///
/// Добавляемый объект
/// Позиция
/// Сравнение двух объектов
/// 1 - вставка прошла удачно, -1 - вставка не удалась
int Insert(T obj, int position, IEqualityComparer? comparer = null);
///
/// Удаление объекта из коллекции с конкретной позиции
///
/// Позиция
///
T? Remove(int position);
///
/// Получение объекта по позиции
///
/// Позиция
/// Объект
T? Get(int position);
///
/// Получение типа коллекции
///
CollectionType GetCollectionType { get; }
///
/// Получение объектов коллекции по одному
///
/// Поэлементый вывод элементов коллекции
IEnumerable GetItems();
///
/// Сортировка коллекции
///
/// Сравнитель объектов
void CollectionSort(IComparer comparer);
}
}