Class MappedList<FROM,​TO>

    • Field Detail

      • sourceSync

        protected volatile boolean sourceSync
      • resultSync

        protected volatile boolean resultSync
    • Method Detail

      • createResultList

        protected EventList<TO> createResultList()
      • onInsertedSource

        protected void onInsertedSource​(int idx,
                                        FROM newItem)
      • onUpdatedSource

        protected void onUpdatedSource​(int idx,
                                       FROM deleted,
                                       FROM newItem)
      • onDeletedSource

        protected void onDeletedSource​(int idx,
                                       FROM deleted)
      • onInsertedResult

        protected void onInsertedResult​(int idx,
                                        TO newItem)
      • onUpdatedResult

        protected void onUpdatedResult​(int idx,
                                       TO deleted,
                                       TO newItem)
      • onDeletedResult

        protected void onDeletedResult​(int idx,
                                       TO deleted)
      • target

        public List<TO> target()
        Возвращает целевой список, над которым происходят преобразования
        Specified by:
        target in interface EventList<FROM>
        Returns:
        целевой список
      • onInserted

        public AutoCloseable onInserted​(TripleConsumer<Integer,​TO,​TO> ls)
        Добавляет подписчика на событие добавления данных
        Specified by:
        onInserted in interface EventList<FROM>
        Parameters:
        ls - подписчик - fn( key:Integer, oldValue:E=null, newValue:E )
        Returns:
        отписка от уведомлений
      • onInserted

        public AutoCloseable onInserted​(boolean weak,
                                        TripleConsumer<Integer,​TO,​TO> ls)
        Добавляет подписчика на событие добавления данных
        Specified by:
        onInserted in interface EventList<FROM>
        Parameters:
        weak - true - добавить подписчика как weak ссылку
        ls - подписчик - fn( key:Integer, oldValue:E=null, newValue:E )
        Returns:
        отписка от уведомлений
      • onUpdated

        public AutoCloseable onUpdated​(TripleConsumer<Integer,​TO,​TO> ls)
        Добавляет подписчика на событие изменения данных
        Specified by:
        onUpdated in interface EventList<FROM>
        Parameters:
        ls - подписчик - fn( key:Integer, oldValue:E, newValue:E )
        Returns:
        отписка от уведомлений
      • onUpdated

        public AutoCloseable onUpdated​(boolean weak,
                                       TripleConsumer<Integer,​TO,​TO> ls)
        Добавляет подписчика на событие изменения данных
        Specified by:
        onUpdated in interface EventList<FROM>
        Parameters:
        weak - true - добавить подписчика как weak ссылку
        ls - подписчик - fn( key:Integer, oldValue:E, newValue:E )
        Returns:
        отписка от уведомлений
      • onDeleted

        public AutoCloseable onDeleted​(TripleConsumer<Integer,​TO,​TO> ls)
        Добавляет подписчика на событие удаления данных
        Specified by:
        onDeleted in interface EventList<FROM>
        Parameters:
        ls - подписчик - fn( key:Integer, oldValue:E, newValue:E=null )
        Returns:
        отписка от уведомлений
      • onDeleted

        public AutoCloseable onDeleted​(boolean weak,
                                       TripleConsumer<Integer,​TO,​TO> ls)
        Добавляет подписчика на событие удаления данных
        Specified by:
        onDeleted in interface EventList<FROM>
        Parameters:
        weak - true - добавить подписчика как weak ссылку
        ls - подписчик - fn( key:Integer, oldValue:E, newValue:E=null )
        Returns:
        отписка от уведомлений
      • onChanged

        public AutoCloseable onChanged​(TripleConsumer<Integer,​TO,​TO> ls)
        Добавляет подписчика на событие изменения/добавления/удаления данных
        Specified by:
        onChanged in interface EventList<FROM>
        Parameters:
        ls - подписчик - fn( key:Integer, oldValue:E, newValue:E )
        Returns:
        отписка от уведомлений
      • onChanged

        public AutoCloseable onChanged​(boolean weak,
                                       TripleConsumer<Integer,​TO,​TO> ls)
        Добавляет подписчика на событие изменения/добавления/удаления данных
        Specified by:
        onChanged in interface EventList<FROM>
        Parameters:
        weak - true - добавить подписчика как weak ссылку
        ls - подписчик - fn( key:Integer, oldValue:E, newValue:E )
        Returns:
        отписка от уведомлений
      • fireInserted

        public void fireInserted​(int index,
                                 TO to)
        Рассылка уведомления подписчикам о добавлении элемента
        Specified by:
        fireInserted in interface EventList<FROM>
        Parameters:
        index - индекс
        to - элемент
      • fireUpdated

        public void fireUpdated​(int index,
                                TO old,
                                TO current)
        Рассылка уведомления подписчикам о обновлении элемента
        Specified by:
        fireUpdated in interface EventList<FROM>
        Parameters:
        index - индекс
        old - предыдущее значение
        current - текущее значение
      • fireDeleted

        public void fireDeleted​(int index,
                                TO to)
        Рассылка уведомления подписчикам о удалении элемента
        Specified by:
        fireDeleted in interface EventList<FROM>
        Parameters:
        index - индекс
        to - элемент
      • size

        public int size()
        Возвращает кол-во элементов в коллекции
        Specified by:
        size in interface Collection<FROM>
        Specified by:
        size in interface EventList<FROM>
        Specified by:
        size in interface List<FROM>
        Returns:
        кол-во элементов
        See Also:
        isEmpty()
      • isEmpty

        public boolean isEmpty()
        Проверяет что коллекция пуста
        Specified by:
        isEmpty in interface Collection<FROM>
        Specified by:
        isEmpty in interface EventList<FROM>
        Specified by:
        isEmpty in interface List<FROM>
        Returns:
        true - коллекция пуста
      • contains

        public boolean contains​(Object o)
        Проверяет наличие элемента в коллеции
        Specified by:
        contains in interface Collection<FROM>
        Specified by:
        contains in interface EventList<FROM>
        Specified by:
        contains in interface List<FROM>
        Parameters:
        o - элемент
        Returns:
        true - элемент присуствует в коллекции
      • toArray

        public Object[] toArray()
        Создает массив объектов коллеции
        Specified by:
        toArray in interface Collection<FROM>
        Specified by:
        toArray in interface EventList<FROM>
        Specified by:
        toArray in interface List<FROM>
        Returns:
        массив объектов коллеции
      • toArray

        public <T> T[] toArray​(T[] a)
        Создает массив объектов коллеции
        Specified by:
        toArray in interface Collection<FROM>
        Specified by:
        toArray in interface EventList<FROM>
        Specified by:
        toArray in interface List<FROM>
        Type Parameters:
        T - ТИп элементов массива
        Parameters:
        a - пустой массив (изза особенности реализации Generic)
        Returns:
        массив
      • containsAll

        public boolean containsAll​(Collection<?> c)
        Проверяет наличие всех элементов в коллеции
        Specified by:
        containsAll in interface Collection<FROM>
        Specified by:
        containsAll in interface EventList<FROM>
        Specified by:
        containsAll in interface List<FROM>
        Parameters:
        c - искомые объекты
        Returns:
        true - если все искомые объекты есть в коллеции
      • get

        public TO get​(int index)
        Получение объекта по его индексу
        Specified by:
        get in interface EventList<FROM>
        Specified by:
        get in interface List<FROM>
        Parameters:
        index - индекс элемента
        Returns:
        Элемент
      • indexOf

        public int indexOf​(Object o)
        Поиск первого индекса элемента в коллекции
        Specified by:
        indexOf in interface EventList<FROM>
        Specified by:
        indexOf in interface List<FROM>
        Parameters:
        o - элемент
        Returns:
        индекс или -1, если не найден
      • lastIndexOf

        public int lastIndexOf​(Object o)
        Поиск последнего индекса элемента в коллекции
        Specified by:
        lastIndexOf in interface EventList<FROM>
        Specified by:
        lastIndexOf in interface List<FROM>
        Parameters:
        o - элемент
        Returns:
        индекс или -1, если не найден
      • listIterator

        public ListIterator<TO> listIterator​(int index)
        Получение итератора по списку,, начала итерации согласно указанному индексу
        Specified by:
        listIterator in interface EventList<FROM>
        Specified by:
        listIterator in interface List<FROM>
        Parameters:
        index - индекс начала итерирования
        Returns:
        итератор
      • subList

        public List<TO> subList​(int fromIndex,
                                int toIndex)
        Создание проекции списка
        Specified by:
        subList in interface EventList<FROM>
        Specified by:
        subList in interface List<FROM>
        Parameters:
        fromIndex - начальный индекс
        toIndex - конечный индекс
        Returns:
        Проекция
      • add

        public boolean add​(TO to)
        Добавляет элемент в список
        Specified by:
        add in interface Collection<FROM>
        Specified by:
        add in interface EventList<FROM>
        Specified by:
        add in interface List<FROM>
        Parameters:
        to - элемент
        Returns:
        true - список изменен
      • remove

        public boolean remove​(Object o)
        Удаляет элемент из списка
        Specified by:
        remove in interface Collection<FROM>
        Specified by:
        remove in interface EventList<FROM>
        Specified by:
        remove in interface List<FROM>
        Parameters:
        o - элемент
        Returns:
        true - список изменен
      • addAll

        public boolean addAll​(Collection<? extends TO> c)
        Добавляет все элементы в список
        Specified by:
        addAll in interface Collection<FROM>
        Specified by:
        addAll in interface EventList<FROM>
        Specified by:
        addAll in interface List<FROM>
        Parameters:
        c - элементы
        Returns:
        true - список изменен
      • addAll

        public boolean addAll​(int index,
                              Collection<? extends TO> c)
        Добавляет все элементы в список, в указанную позицию
        Specified by:
        addAll in interface EventList<FROM>
        Specified by:
        addAll in interface List<FROM>
        Parameters:
        index - позиция (индекс) вставки
        c - элементы
        Returns:
        true - список изменен
      • removeAll

        public boolean removeAll​(Collection<?> coll)
        Удаляет указанные элементы из списка
        Specified by:
        removeAll in interface Collection<FROM>
        Specified by:
        removeAll in interface EventList<FROM>
        Specified by:
        removeAll in interface List<FROM>
        Parameters:
        coll - элементы
        Returns:
        true - список изменен
      • retainAll

        public boolean retainAll​(Collection<?> coll)
        Удаляет элементы из списока, за исключением указанных
        Specified by:
        retainAll in interface Collection<FROM>
        Specified by:
        retainAll in interface EventList<FROM>
        Specified by:
        retainAll in interface List<FROM>
        Parameters:
        coll - элементы
        Returns:
        true - список изменен
      • set

        public TO set​(int index,
                      TO element)
        Записиывает элемент в определенную позицию
        Specified by:
        set in interface EventList<FROM>
        Specified by:
        set in interface List<FROM>
        Parameters:
        index - индекс
        element - элемент
        Returns:
        предыдущее значение
      • add

        public void add​(int index,
                        TO element)
        Вставляет элемент в определнное место списка
        Specified by:
        add in interface EventList<FROM>
        Specified by:
        add in interface List<FROM>
        Parameters:
        index - индекс
        element - элемент
      • remove

        public TO remove​(int index)
        Удялет элемент из списка
        Specified by:
        remove in interface EventList<FROM>
        Specified by:
        remove in interface List<FROM>
        Parameters:
        index - индекс элемента
        Returns:
        удаленный элемент
      • sort

        public void sort​(Comparator<? super TO> c)
        Сортировка списка
        Specified by:
        sort in interface EventList<FROM>
        Specified by:
        sort in interface List<FROM>
        Parameters:
        c - функция сравнения
      • removeIf

        public boolean removeIf​(Predicate<? super TO> filter)
        Удаление элементов согласно фильтру
        Specified by:
        removeIf in interface Collection<FROM>
        Specified by:
        removeIf in interface EventList<FROM>
        Parameters:
        filter - фильтр
        Returns:
        факт удаления