Class Types/collection:RecordSet

Рекордсет - список записей, имеющих общий формат полей.

class Types/_collection/RecordSet<TData, T>

Примечание

Основные аспекты рекордсета (дополнительно к аспектам Types/_collection/ObservableList):

  • манипуляции с форматом полей. За реализацию аспекта отвечает примесь Types/_entity/FormattableMixin;
  • манипуляции с сырыми данными посредством адаптера. За реализацию аспекта отвечает примесь Types/_entity/FormattableMixin.

Элементами рекордсета могут быть только записи, причем формат полей всех записей должен совпадать.

Создадим рекордсет, в котором в качестве сырых данных используется 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'

Создадим рекордсет, в котором в качестве сырых данных используется ответ БЛ СБИС (адаптер для данных в таком формате укажем явно):

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());
});

Опции

ACTION_ADD

Изменение коллекции: добавлены элементы

IObservable
ACTION_CHANGE

Изменение коллекции: изменены элементы

IObservable
ACTION_MOVE

Изменение коллекции: перемещены элементы

IObservable
ACTION_REMOVE

Изменение коллекции: удалены элементы

IObservable
ACTION_REPLACE

Изменение коллекции: заменены элементы

IObservable
ACTION_RESET

Изменение коллекции: значительное изменение

IObservable
_mediator

Медиатор, отвечающий за связи между сущностями

ManyToManyMixin
adapter

Адаптер, обеспечивающий доступ к необработанным данным определенного формата. По умолчанию поддерживаются необработанные данные в формате Types/_entity/adapter/Json.

FormattableMixin
beforeRaiseOffprotected

Состояние коллекции до выключения генерации событий

EventRaisingMixin
blockChangesMessageprotected

Сообщение для режима блокировки изменений

EventRaisingMixin
cowprotected

Работа с необработанными данными в режиме Copy-On-Write.

FormattableMixin
defaultModelprotected

Модель по умолчанию

destroyed

Экземпляр был разрушен

DestroyableMixin
eventBusChannelprotected

Канал событий

ObservableMixin
eventRaisingprotected

Генерация событий включена

EventRaisingMixin
eventRaisingTriggerprotected

Hooks to implement additional behaviour when event rasing occuires

EventRaisingMixin
eventsQueueprotected

Очередь событий

ObservableMixin
format

{Types/_collection/format/Format|

Array.<Types/_entity/format/fieldsFactory/FieldDeclaration.typedef>|

Object.<String,String>|

Object.<String,Function>|

Object.<String,Types/_entity/format/fieldsFactory/FieldDeclaration.typedef>|

Object.<String,Types/_entity/format/Field>

} Формат полей. Это может быть либо полный формат (в этом случае он должен быть определен как массив или экземпляр класса Format), либо как частичный формат (в этом случае он должен быть определен как простой объект).

FormattableMixin
formatCloneprotected

Копия _format, которая используется для кэширования в getFormat()

FormattableMixin
formatUnlinkedprotected

Значение _$format не связано с исходным значением.

FormattableMixin
getOptionsprotected

Метод реализован в OptionsToPropertyMixin.

SerializableMixin
indexerprotected

Индексатор элементов.

List
instanceIdprotected

Уникальный идентификатор

InstantiableMixin
instanceNumberprotected

Уникальный номер инстанса

SerializableMixin
instancePrefixprotected

Префикс значений идентификатора

InstantiableMixin
keyProperty

Название свойства записи, содержащего первичный ключ.

metaData

Метаданные

metaFormat

Формат всех полей метаданных.

model

Конструктор записей, порождаемых рекордсетом. По умолчанию Types/_entity/Model.

moduleNameprotected

Название класса-конструктора.

SerializableMixin
optionsdeprecatedprotected
OptionsToPropertyMixin
publishedEventsprotected

Декларированные события

ObservableMixin
rawData

Данные в необработанном формате, которые могут быть распознаны через определенный адаптер.

FormattableMixin
rawDataAdapterprotected

Экземпляр адаптера для работы с необработанными данными.

FormattableMixin
rawDataFieldsprotected

Список имен полей, взятых из адаптера необработанных данных.

FormattableMixin
resetChangesCountprotected

Количество измененных элементов, что важно для генерации одного события с действием ACTION_RESET вместо нескольких.

ObservableList
sessionItemContentsGetterprotected

Метод получения содержимого элемента коллекции (если такое поведение поддерживается)

EventRaisingMixin
silentChangedItemsprotected

Элементы, измененные во время работы события, были выключены.

ObservableList
versionCallback

Обработчик изменения версии

VersionableMixin

Методы

acceptChanges

Подтверждает изменения всех записей с момента предыдущего вызова acceptChanges().

Обрабатывает состояние записей следующим образом:

  • Changed и Added - меняют state на Unchanged;
  • Deleted - удаляются из рекордсета, а их state становится Detached;
  • остальные не меняются.
add

Добавляет запись в рекордсет путем создания новой записи, в качестве сырых данных для которой будут взяты сырые данные аргумента item.

Если формат созданной записи не совпадает с форматом рекордсета, то он будет приведен к нему принудительно:

лишние поля будут отброшены, недостающие - проинициализированы значениями по умолчанию.

При недопустимом at генерируется исключение.

addField

Добавляет поле в формат.

FormattableMixin
append

Добавляет копии записей другой коллекции в конец рекордсета.

Если формат созданных копий не совпадает с форматом рекордсета, то он будет приведен к нему принудительно: лишние поля будут отброшены, недостающие - проинициализированы значениями по умолчанию.

assign

Заменяет записи рекордсета копиями записей другой коллекции.

Если формат созданных копий не совпадает с форматом рекордсета, то он будет приведен к нему принудительно: лишние поля будут отброшены, недостающие - проинициализированы значениями по умолчанию.

at

Возвращает элемент по позиции.

При недопустимом index возвращает undefined.

IList
clear

Очищает список.

IList
clone

Создает новый объект, который являтся копией текущего экземпляра.

ICloneable
constructor

Конструктор объекта, принимающий набор опций в качестве первого аргумента

OptionsToPropertyMixin
destroy

Разрушает экземпляр

DestroyableMixin
each

Перебирает записи рекордсета.

extend
List
fromJSON

Конструирует экземпляр класса из сериализованного состояния

SerializableMixin
getAdapter

Возвращает адаптер для обработки необработанных данных.

FormattableMixin
getCount

Возвращает количество элементов списка

IList
getEnumerator

Возвращает энумератор для перебора записей рекордсета.

Пример использования можно посмотреть в модуле Types/_collection/IEnumerable.

getEventHandlers

Возвращет массив подписчиков на событие

ObservableMixin
getFormat

Возвращает формат поля в режиме “только для чтения”.

FormattableMixin
getIndex

Возвращает позицию первого вхождения элемента в список.

IList
getIndexByValue

Возвращает индекс первого элемента с указанным значением свойства. Если такого элемента нет - вернет -1.

IIndexedCollection
getIndicesByValue

Возвращает индексы всех элементов с указанным значением свойства.

IIndexedCollection
getInstanceId

Возвращает уникальный идентификатор экземпляра класса.

IInstantiable
getKeyProperty

Возвращает название свойства записи, содержащего первичный ключ

getMetaData

Возвращает метаданные RecordSet’а.

Подробнее о метаданных смотрите в описании опции metaData.

getModel

Возвращает конструктор записей, порождаемых рекордсетом.

getRawData

Возвращает необработанные данные (клонирует, если есть объект).

FormattableMixin
getRecordById

Возвращает запись по ключу.

Если записи с таким ключом нет - возвращает undefined.

getVersion

Возвращает версию объекта.

Версия соответсвует некому состоянию объекта и меняется при измении как то значимых свойств объекта, например для рекорда это будет изменение значений полей.

IVersionable
hasDeclaredFormat

Возвращает признак того, что формат был задан явно.

FormattableMixin
hasEventHandlers

Проверяет наличие подписки на событие

ObservableMixin
isDestroyedprotected
DestroyableMixin
isEqual

Проверяет эквивалентность текущего объекта другому объекту.

IEquatable
isEventRaising

Возвращает признак, включена ли генерация событий об изменении проекции

EventRaisingMixin
merge

Объединяет два рекордсета.

move

Перемещает элемент с одной позиции на другую.

При недопустимом from или to генерируется исключение.

IList
patch

Создает из рекордсета патч - запись с измененными, добавленными записями и ключами удаленных записей.

prepend

Добавляет копии записей другой коллекции в начало рекордсета.

Если формат созданных копий не совпадает с форматом рекордсета, то он будет приведен к нему принудительно:

лишние поля будут отброшены, недостающие - проинициализированы значениями по умолчанию.

remove

Удаляет элемент из списка (первый найденный). Элементы, следующие за удаленным, смещаются вверх.

IList
removeAt

Удаляет элемент в указанной позиции. Элементы, следующие за удаленным, смещаются вверх.

При недопустимом index генерируется исключение.

IList
removeField

Удаляет поле из формата по его имени.

FormattableMixin
removeFieldAt

Удаляет поле из формата по его позиции.

FormattableMixin
replace

Заменяет запись в указанной позиции через создание новой записи, в качестве сырых данных для которой будут взяты сырые данные аргумента item.

Если формат созданной записи не совпадает с форматом рекордсета, то он будет приведен к нему принудительно: лишние поля будут отброшены, недостающие - проинициализированы значениями по умолчанию.

При недопустимом at генерируется исключение.

resetDeclaredFormat

Обнуляет явно заданный формат.

FormattableMixin
setEventRaising

Включает/выключает генерацию событий об изменении коллекции

EventRaisingMixin
setKeyProperty

Устанавливает название свойства записи, содержащего первичный ключ

setMetaData

Устанавливает метаданные RecordSet’а.

Подробнее о метаданных смотрите в описании опции metaData.

  • path - путь для хлебных крошек, возвращается как Types/_collection/RecordSet;
  • results - строка итогов, возвращается как Types/_entity/Record. Подробнее о конфигурации списков для отображения строки итогов читайте в этом разделе;
  • more - Boolean - есть ли есть записи для подгрузки (используется для постраничной навигации).
setRawData

Устанавливает необработанные данные.

FormattableMixin
subscribe

Добавляет подписку на событие

ObservableMixin
toJSON

Возвращает сериализованный экземпляр класса

SerializableMixin
unsubscribe

Отменяет подписку на событие

ObservableMixin

События

onCollectionChange

После изменения коллекции

IObservable
onCollectionItemChange

После изменения элемента коллекции

IObservable
onEventRaisingChange

После изменения режима генерации событий

EventRaisingMixin
onPropertyChange

После изменения набора свойств объекта.

IObservableObject
10/28/2020Мальцев А.А.