class Types/collection:RecordSet
Рекордсет - список записей, имеющих общий формат полей.
Примечание
Основные аспекты рекордсета (дополнительно к аспектам Types/collection:ObservableList):
- манипуляции с форматом полей. За реализацию аспекта отвечает примесь Types/entity:FormattableMixin;
- манипуляции с сырыми данными посредством адаптера. За реализацию аспекта отвечает примесь Types/entity:FormattableMixin.
Элементами рекордсета могут быть только записи, причем формат полей всех записей должен совпадать.
Пример 1. Создадим рекордсет, в котором в качестве сырых данных используется JSON (адаптер для данных в таком формате используется по умолчанию):
import {RecordSet} from 'Types/collection';
const characters = new RecordSet({
rawData: [{
id: 1,
firstName: 'Tom',
lastName: 'Sawyer'
}, {
id: 2,
firstName: 'Huckleberry',
lastName: 'Finn'
}]
});
characters.at(0).get('firstName'); // 'Tom'
characters.at(1).get('firstName'); // 'Huckleberry'
Пример 2. Создадим рекордсет, в котором в качестве сырых данных используется объект в формате СБИС (адаптер для данных в таком формате нужно указывать явно):
import {RecordSet} from 'Types/collection';
const characters = new RecordSet({
rawData: {
d: [
[1, 'Иванов'],
[2, 'Петров'],
[3, 'Сидоров'],
[4, 'Молодцов']
],
s: [{
n: 'id',
t: 'Число целое'
}, {
n: 'name',
t: 'Строка'
}]
},
adapter: 'adapter.sbis'
});
characters.at(0).get('name'); // 'Иванов'
characters.at(1).get('name'); // 'Петров'
Соответствие названий полей в формате сырых данных БЛ СБИС и в формате Types смотрите здесь.
Пример 3. Создадим рекордсет, в котором в качестве сырых данных используется ответ БЛ СБИС (адаптер для данных в таком формате укажем явно):
import {RecordSet} from 'Types/collection';
import {SbisService} from 'Types/source';
const ds = new SbisService({endpoint: 'Employee'});
ds.call('list', {department: 'designers'}).then((response) => {
const designers = new RecordSet({
rawData: response.getRawData(),
adapter: response.getAdapter()
});
console.log(designers.getCount());
});
Опции
- protected
Адаптер, обеспечивающий доступ к необработанным данным определенного формата. По умолчанию поддерживаются необработанные данные в формате Types/entity:adapter.Json.
- FormattableMixin
- protected
Формат полей. Это может быть либо полный формат (в этом случае он должен быть определен как массив или экземпляр класса Types/_collection/format/Format), либо как частичный формат (в этом случае он должен быть определен как простой объект).
- FormattableMixin
- protected
Название свойства записи, содержащего первичный ключ.
- protected
Метаданные
- protected
Формат всех полей метаданных.
- protected
Конструктор записей, порождаемых рекордсетом. По умолчанию Types/entity:Model.
- protected
Данные в необработанном формате, которые могут быть распознаны через определенный адаптер.
- FormattableMixin
- protected
Обработчик изменения версии
- VersionableMixin
Поля
- protected
Модель по умолчанию
- protected
Метаданные - локальная обработанная копия _$metaData
- protected
Состояние коллекции до выключения генерации событий
- EventRaisingMixin
- protected
Сообщение для режима блокировки изменений
- EventRaisingMixin
- protected
Метод получения содержимого элемента коллекции (если такое поведение поддерживается)
- EventRaisingMixin
Изменение коллекции: добавлены элементы
- IObservable
Изменение коллекции: изменены элементы
- IObservable
Изменение коллекции: перемещены элементы
- IObservable
Изменение коллекции: удалены элементы
- IObservable
Изменение коллекции: заменены элементы
- IObservable
Изменение коллекции: значительное изменение
- IObservable
- protected
Индексатор элементов.
- List
- protected
Количество измененных элементов, что важно для генерации одного события с действием ACTION_RESET вместо нескольких.
- ObservableList
- protected
Элементы, измененные во время работы события, были выключены.
- ObservableList
- protected
Поля элементов коллекции, измененные во время работы события, которые были выключены.
- ObservableList
Экземпляр был разрушен
- DestroyableMixin
- protected
Работа с необработанными данными в режиме Copy-On-Write.
- FormattableMixin
- protected
Окончательно построенный формат.
- FormattableMixin
- protected
Копия _format, которая используется для кэширования в getFormat()
- FormattableMixin
- protected
Значение _$format не связано с исходным значением.
- FormattableMixin
- protected
Экземпляр адаптера для работы с необработанными данными.
- FormattableMixin
- protected
Список имен полей, взятых из адаптера необработанных данных.
- FormattableMixin
- protected
Уникальный идентификатор
- InstantiableMixin
- protected
Префикс значений идентификатора
- InstantiableMixin
Медиатор, отвечающий за связи между сущностями
- ManyToManyMixin
- protected
Канал событий
- ObservableMixin
- protected
Очередь событий
- ObservableMixin
- protected
Декларированные события
- ObservableMixin
- ReadWriteMixin
- protected
Метод реализован в OptionsToPropertyMixin.
- SerializableMixin
- protected
Уникальный номер инстанса
- SerializableMixin
- protected
Название класса-конструктора.
- SerializableMixin
Методы
- protected
Добавляет отношение с другой сущностью
- ManyToManyMixin
- protected
Вставляет сырые данные записей в сырые данные рекордсета
- protected
Добавляет поле в _rawDataFields.
- FormattableMixin
- protected
Анализирует серию обновлений, генерирует события об изменениях
- EventRaisingMixin
- protected
Переустанавливает сырые данные
- protected
Создает формат поля по его описанию.
- FormattableMixin
- protected
Строит формат по описанию.
- FormattableMixin
- protected
Создает новый экземпляр модели
- protected
Проверяет совместимость адаптеров.
- FormattableMixin
- protected
Проверяет, что переданный элемент - это запись с идентичным форматом
- protected
Проверяет, что в прототипе указано имя модуля для RequireJS, иначе не будет работать десериализация
- SerializableMixin
- protected
Рекурсивно уведомляет родительские сущности об изменении дочерней
- ManyToManyMixin
- protected
Очищает формат полей. Это работает, только если формат не был объявлен.
- FormattableMixin
- protected
Очищает _formatClone.
- FormattableMixin
- protected
Очищает индексатор коллекции
- List
- protected
Создает посредника для установления отношений с детьми
- ManyToManyMixin
- protected
Создает экземпляр адаптера для определенного типа данных (таблица, запись, декоратор или метаданные).
- FormattableMixin
- protected
Разбивает элементы списка на пачки в порядке их следования в списке.
- EventRaisingMixin
- protected
Завершает серию обновлений
- EventRaisingMixin
- protected
Возвращает общий экземпляр адаптера.
- FormattableMixin
Возвращает адаптер по умолчанию, как это и должно быть.
- FormattableMixin
- protected
Возвращает формат поля с указанным именем.
- FormattableMixin
- protected
Возвращает тип поля по его формату.
- FormattableMixin
- protected
Возвращает формат поля.
- FormattableMixin
- protected
Возвращает индексатор коллекции
- List
- protected
Возвращает посредника для установления отношений с детьми
- ManyToManyMixin
- protected
Возвращает опции объекта
- OptionsToPropertyMixin
- protected
Возвращает необработанные данные из адаптера.
- FormattableMixin
- protected
Возвращает экземпляр адаптера для определенного типа данных.
- FormattableMixin
- protected
Возвращает список имен полей, взятых из адаптера необработанных данных.
- FormattableMixin
- protected
Возвращает исходные данные, введенные через параметр.
- FormattableMixin
- protected
Возвращает запись по индексу
- protected
Возвращает всё, что нужно сложить в состояние объекта при сериализации, чтобы при десериализации вернуть его в это же состояние
- SerializableMixin
- protected
Псевдоним для hasDeclaredFormat().
- FormattableMixin
- protected
Возвращает признак наличия посредника
- ManyToManyMixin
- protected
Возвращает признак наличия одинакового посредника
- ManyToManyMixin
- protected
Пересоздает элементы из сырых данных
- protected
Инициализирует экземпляр адаптера.
- FormattableMixin
- protected
Возвращает признак, что нужно генерировать события об окончании изменений коллекции
- ObservableList
- protected
Возвращает признак, что нужно генерировать события об изменениях коллекции
- EventRaisingMixin
- protected
Возвращает признак, что нужно генерировать события об изменениях элементов коллекции
- ObservableList
- protected
Check if the instance was unserialized.
- SerializableMixin
- protected
Проверяет корректность индекса
- List
- protected
Извлекает элементы, входящие в указанный отрезок
- ObservableList
- protected
Приводит переденные элементы к массиву.
- List
- protected
Returns record copy with target format
- protected
Normalizes given records by producing their copies with recordset's format
- protected
Извещает о наступлении события. Если в процессе извещения приходит очередное событие, то извещение о нем будет отправлено после выполнения обработчиков предыдущего.
- ObservableMixin
- protected
Генерирует событие об окончании изменений коллекции
- ObservableList
- protected
Генерирует событие об изменении коллекции
- EventRaisingMixin
- protected
Генерирует событие об изменении элемента
- ObservableList
- protected
Ставит в очередь извещение о наступлении события.
- ObservableMixin
- protected
Добавляет извещение о событии в очередь.
- ObservableMixin
- protected
Инициирует выполнение обработчиков из очереди событий
- ObservableMixin
- protected
Уведомляет дочерние сущности об изменении родительской
- ManyToManyMixin
- protected
Декларирует наличие событий
- ObservableMixin
- protected
Переиндексирует список
- List
- protected
Удаляет отношение с другой сущностью
- ManyToManyMixin
- protected
Удаляет из очереди все обработчики указанного события
- ObservableMixin
- protected
Сбрасывает экземпляр адаптера для определенного типа данных.
- FormattableMixin
- protected
Сбрасывает _rawDataFields.
- FormattableMixin
- protected
Устанавливает посредника для установления отношений с детьми
- ManyToManyMixin
- protected
Проверяет сериализованное состояние перед созданием инстанса. Возвращает метод, восстанавливающий состояние объекта после создания инстанса.
- SerializableMixin
- protected
Вызывает метод splice.
- List
- protected
Запускает серию обновлений
- EventRaisingMixin
- protected
Разрыв связи _$format с исходным значением.
- FormattableMixin
Подтверждает изменения всех записей с момента предыдущего вызова acceptChanges().
Обрабатывает состояние записей следующим образом:
- Changed и Added - меняют state на Unchanged;
- Deleted - удаляются из рекордсета, а их state становится Detached;
- остальные не меняются.
- IStateful
Добавляет запись в рекордсет путем создания новой записи, в качестве сырых данных для которой будут взяты сырые данные аргумента item.
Если формат созданной записи не совпадает с форматом рекордсета, то он будет приведен к нему принудительно:
лишние поля будут отброшены, недостающие - проинициализированы значениями по умолчанию.
При недопустимом at генерируется исключение.
- IList
Добавляет поле в формат.
- FormattableMixin
Добавляет копии записей другой коллекции в конец рекордсета.
Если формат созданных копий не совпадает с форматом рекордсета, то он будет приведен к нему принудительно: лишние поля будут отброшены, недостающие - проинициализированы значениями по умолчанию.
- IList
Заменяет записи рекордсета копиями записей другой коллекции.
Если формат созданных копий не совпадает с форматом рекордсета, то он будет приведен к нему принудительно: лишние поля будут отброшены, недостающие - проинициализированы значениями по умолчанию.
- IList
Возвращает запись по позиции.
При недопустимом index возвращает undefined.
- IList
Очищает список.
- IList
Создает новый RecordSet, который является копией текущего RecordSet.
- ICloneable
Конструктор RecordSet, принимающий набор опций в качестве первого аргумента
- OptionsToPropertyMixin
Создает новый формат из полей текущего построенного и выставляет его как явно заданный формат.
- FormattableMixin
Разрушает экземпляр
- DestroyableMixin
Перебирает записи рекордсета.
- IEnumerable
Конструирует экземпляр класса из сериализованного состояния
- SerializableMixin
Возвращает адаптер для обработки необработанных данных.
- FormattableMixin
Возвращает количество элементов списка
- IList
Возвращает энумератор для перебора записей рекордсета.
Пример использования можно посмотреть в модуле Types/collection:IEnumerable.
- IEnumerable
Возвращет массив подписчиков на событие
- ObservableMixin
Возвращает формат поля в режиме "только для чтения".
- FormattableMixin
Возвращает позицию первого вхождения элемента в список.
- IList
Возвращает индекс первого элемента с указанным значением свойства. Если такого элемента нет - вернет -1.
- IIndexedCollection
Возвращает индексы всех элементов с указанным значением свойства. Если таких элементов нет - вернет пустой массив.
- IIndexedCollection
Возвращает уникальный идентификатор экземпляра класса.
- IInstantiable
Возвращает название свойства записи, содержащего первичный ключ
Возвращает метаданные RecordSet'а.
Подробнее о метаданных смотрите в описании опции metaData.
Возвращает конструктор записей, порождаемых рекордсетом.
Возвращает необработанные данные (клонирует, если есть объект).
- FormattableMixin
Возвращает запись по ключу.
Если записи с таким ключом нет - возвращает undefined.
Возвращает версию объекта.
Версия соответствует некому состоянию объекта и меняется при изменении как то значимых свойств объекта, например для рекорда это будет изменение значений полей.
- IVersionable
Возвращает признак того, что формат был задан явно (передан через опцию format конструктора).
- FormattableMixin
Проверяет наличие подписки на событие
- ObservableMixin
Возвращает признак, что изменено хотя бы одно поле, хотя бы в одном элементе.
- IStateful
Проверяет эквивалентность текущего объекта другому объекту.
- IEquatable
Возвращает признак, включена ли генерация событий об изменении проекции
- EventRaisingMixin
Объединяет два рекордсета.
Перемещает элемент с одной позиции на другую.
При недопустимом from или to генерируется исключение.
- IList
Создает из рекордсета патч - запись с измененными, добавленными записями и ключами удаленных записей.
Добавляет копии записей другой коллекции в начало рекордсета.
Если формат созданных копий не совпадает с форматом рекордсета, то он будет приведен к нему принудительно:
лишние поля будут отброшены, недостающие - проинициализированы значениями по умолчанию.
- IList
Откатывает изменения всех записей к состоянию на момент после предыдущего вызова acceptChanges().
Обрабатывает состояние записей следующим образом:
- Changed - меняет state на Unchanged; значения внутренних полей откатываются
- Added - меняет state на Detached;
- Deleted - меняет state на Unchanged, значения внутренних полей откатываются;
- Detached - возвращает запись в рекордсет, меняет state на Unchanged, значения внутренних полей откатываются;
- IStateful
Удаляет элемент из списка (первый найденный). Элементы, следующие за удаленным, смещаются вверх.
- IList
Удаляет элемент в указанной позиции. Элементы, следующие за удаленным, смещаются вверх.
При недопустимом index генерируется исключение.
- IList
Удаляет поле из формата по его имени.
- FormattableMixin
Удаляет поле из формата по его позиции.
- FormattableMixin
Заменяет запись в указанной позиции через создание новой записи, в качестве сырых данных для которой будут взяты сырые данные аргумента item.
Если формат созданной записи не совпадает с форматом рекордсета, то он будет приведен к нему принудительно: лишние поля будут отброшены, недостающие - проинициализированы значениями по умолчанию.
При недопустимом at генерируется исключение.
- IList
Обнуляет явно заданный формат.
- FormattableMixin
Включает/выключает генерацию событий об изменении коллекции
- EventRaisingMixin
Устанавливает название свойства записи, содержащего первичный ключ
Устанавливает метаданные RecordSet'а.
Подробнее о метаданных смотрите в описании опции metaData.
- path - путь для хлебных крошек, возвращается как Types/collection:RecordSet;
- results - строка итогов, возвращается как Types/entity:Record. Подробнее о конфигурации списков для отображения строки итогов читайте в этом разделе;
- more - Boolean - есть ли записи для подгрузки (используется для постраничной навигации).
Устанавливает необработанные данные.
- FormattableMixin
Добавляет подписку на событие
- ObservableMixin
Возвращает сериализованный экземпляр класса
- SerializableMixin
Отменяет подписку на событие
- ObservableMixin
События
После завершения изменения коллекции
- IObservable
После изменения коллекции
- IObservable
После изменения элемента коллекции
- IObservable
После изменения набора свойств объекта.
- IObservableObject