class Types/entity:Record

Запись - обертка над данными, которые представлены в виде строки таблицы (объект с набором полей и их значений).

class Types/_entity/Record<T>

Примечание

Основные аспекты записи:

  • одинаковый интерфейс доступа к данным в различных форматах (так называемые "сырые данные"), например таких как JSON, СБИС-JSON или XML. За определение аспекта отвечает интерфейс Types/entity:IObject;
  • одинаковый интерфейс доступа к набору полей. За определение аспекта отвечает интерфейс Types/collection:IEnumerable;
  • манипуляции с форматом полей. За реализацию аспекта отвечает примесь Types/entity:FormattableMixin;
  • манипуляции с сырыми данными посредством адаптера. За реализацию аспекта отвечает примесь Types/entity:FormattableMixin.

Создадим запись, в которой в качестве сырых данных используется plain JSON (адаптер для данных в таком формате используется по умолчанию):

    require(['Types/entity'], function (entity) {
        var employee = new entity.Record({
            rawData: {
                id: 1,
                firstName: 'John',
                lastName: 'Smith'
            }
        });
        employee.get('id');//1
        employee.get('firstName');//John
    });

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

    require([
        'Types/entity',
        'Types/source'
    ], function (entity, source) {
        var source = new source.SbisService({endpoint: 'Employee'});
        source.call('read', {login: 'root'}).addCallback(function(response) {
            var employee = new entity.Record({
                rawData: response.getRawData(),
                adapter: response.getAdapter()
            });
            console.log(employee.get('id'));
            console.log(employee.get('firstName'));
        });
    });

Опции

adapterprotected

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

FormattableMixin
cacheModeprotected

Режим кеширования (по умолчанию - только объекты)

cloneChangedprotected

Клонировать значения полей, поддерживающих интерфейс Types/entity:ICloneable, и при вызове rejectChages восстанавливать клонированные значения.

formatprotected

{Types/_collection/format/Format|

Array.|

Object.|

Object.|

Object.|

Object.

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

FormattableMixin
ownerprotected

Рекордсет, которому принадлежит запись

rawDataprotected

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

FormattableMixin
stateprotected

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

versionCallbackprotected

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

VersionableMixin

Поля

acceptedStateprotected

Состояние записи после последнего вызова acceptChanges

changedFieldsprotected

Данные об измененных полях

fieldsCacheprotected

Объект содержащий закэшированные значения полей

fieldsCloneprotected

Объект содержащий клонированные значения полей

beforeRaiseOffprotected

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

EventRaisingMixin
blockChangesMessageprotected

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

EventRaisingMixin
sessionItemContentsGetterprotected

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

EventRaisingMixin
destroyed

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

DestroyableMixin
cowprotected

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

FormattableMixin
formatprotected

Окончательно построенный формат.

FormattableMixin
formatCloneprotected

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

FormattableMixin
formatUnlinkedprotected

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

FormattableMixin
rawDataAdapterprotected

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

FormattableMixin
rawDataFieldsprotected

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

FormattableMixin
_mediator

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

ManyToManyMixin
eventBusChannelprotected

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

ObservableMixin
eventsQueueprotected

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

ObservableMixin
publishedEventsprotected

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

ObservableMixin
optionsdeprecatedprotected
ReadWriteMixin
getOptionsprotected

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

SerializableMixin
instanceNumberprotected

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

SerializableMixin
moduleNameprotected

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

SerializableMixin

Методы

_addChildprotected

Добавляет отношение с другой сущностью

ManyToManyMixin
_addRawDataFieldprotected

Добавляет поле в _rawDataFields.

FormattableMixin
_analizeUpdateSessionprotected

Анализирует серию обновлений, генерирует события об изменениях

EventRaisingMixin
_buildFieldprotected

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

FormattableMixin
_buildFormatprotected

Строит формат по описанию.

FormattableMixin
_checkAdapterCompatibilityprotected

Проверяет совместимость адаптеров.

FormattableMixin
_checkErrorsprotected

Проверяет наличие ошибок

_checkFormatIsWritableprotected

Проверяет, что формат записи доступен для записи

_checkModuleNameprotected

Проверяет, что в прототипе указано имя модуля для RequireJS, иначе не будет работать десериализация

SerializableMixin
_childChangedprotected

Рекурсивно уведомляет родительские сущности об изменении дочерней

ManyToManyMixin
_clearChangedFieldsprotected

Очищает информацию об измененных полях

_clearFieldsCacheprotected

Обнуляет кэш значений полей

_clearFormatprotected

Очищает формат полей. Это работает, только если формат не был объявлен.

FormattableMixin
_clearFormatCloneprotected

Очизает _formatClone.

FormattableMixin
_createMediatorprotected

Создает посредника для установления отношений с детьми

ManyToManyMixin
_createRawDataAdapterprotected

Создает адаптер для сырых данных

_extractPacksByListprotected

Разбивает элементы списка на пачки в порядке их следования в списке.

EventRaisingMixin
_finishUpdateSessionprotected

Завершает серию обновлений

EventRaisingMixin
_getAdapterprotected

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

FormattableMixin
_getChangedFieldValueprotected

Возвращает оригинальное значение измененного поля

_getDefaultAdapterdeprecatedprotected

Возвращает адаптер по умолчанию, как это и должно быть.

FormattableMixin
_getFieldFormatprotected

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

FormattableMixin
_getFieldTypeprotected

Возвращает тип поля по его формату.

FormattableMixin
_getFormatprotected

Возвращает формат поля.

FormattableMixin
_getHashMapprotected

Возвращает hash map

_getMediatorprotected

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

ManyToManyMixin
_getOptionsprotected

Возвращает опции объекта

OptionsToPropertyMixin
_getRawDataprotected

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

FormattableMixin
_getRawDataAdapterprotected

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

FormattableMixin
_getRawDataFieldsprotected

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

FormattableMixin
_getRawDataFromOptionprotected

Возвращает исходные данные, введенные через параметр.

FormattableMixin
_getRawDataValueprotected

Возвращает значение поля из "сырых" данных, прогнанное через фабрику

_getSerializableStateprotected

Возвращает всё, что нужно сложить в состояние объекта при сериализации, чтобы при десериализации вернуть его в это же состояние

SerializableMixin
_hasChangedFieldprotected

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

_hasFormatprotected

Псевдоним для hasDeclaredFormat().

FormattableMixin
_hasMediatorprotected

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

ManyToManyMixin
_hasSameMediatorprotected

Возвращает признак наличия одинакового посредника

ManyToManyMixin
_haveToCloneprotected

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

_initRawDataAdapterprotected

Инициализирует экземпляр адаптера.

FormattableMixin
_isFieldValueCacheableprotected

Возвращает признак, что значение поля кэшируемое

_isNeedNotifyCollectionChangeprotected

Возвращает признак, что нужно генерировать события об изменениях коллекции

EventRaisingMixin
_isNeedNotifyPropertyChangeprotected

Возвращает признак, что нужно генерировать события об изменении записи

_isUnserializedprotected

Check if the instance was unserialized.

SerializableMixin
_notifyprotected

Извещает о наступлении события. Если в процессе извещения приходит очередное событие, то извещение о нем будет отправлено после выполнения обработчиков предыдущего.

ObservableMixin
_notifyChangeprotected

Уведомляет об изменении полей записи

_notifyCollectionChangeprotected

Генерирует событие об изменении коллекции

EventRaisingMixin
_notifyLaterprotected

Ставит в очередь извещение о наступлении события.

ObservableMixin
_notifyPushQueueprotected

Добавляет извещение о событии в очередь.

ObservableMixin
_notifyQueueprotected

Инициирует выполнение обработчиков из очереди событий

ObservableMixin
_parentChangedprotected

Уведомляет дочерние сущности об изменении родительской

ManyToManyMixin
_publishprotected

Деклариует наличие событий

ObservableMixin
_removeChildprotected

Удаляет отношение с другой сущностью

ManyToManyMixin
_removeFromQueueprotected

Удаляет из очереди все обработчики указанного события

ObservableMixin
_resetRawDataAdapterprotected

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

FormattableMixin
_resetRawDataFieldsprotected

Сбрасывает _rawDataFields.

FormattableMixin
_setChangedFieldprotected

Устанавливает признак изменения поля

_setMediatorprotected

Устанавливает посредника для установления отношений с детьми

ManyToManyMixin
_setPairsprotected

Устанавливает значения полей из пар "новое значение => старое значение"

_setRawDataValueprotected

Конвертирует значение поля через фабрику и сохраняет его в "сырых" данных

_setSerializableStateprotected

Проверяет сериализованное состояние перед созданием инстанса. Возвращает метод, востанавливающий состояние объекта после создания инстанса.

SerializableMixin
_startUpdateSessionprotected

Запускает серию обновлений

EventRaisingMixin
_unlinkFormatOptionprotected

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

FormattableMixin
_unsetChangedFieldprotected

Снимает признак изменения поля

acceptChanges

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

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

  • Меняет state следующим образом:

    • Added или Changed становится Unchanged;
    • Deleted становится Detached;
    • остальные не меняются.

Если передан аргумент fields, то подтверждаются изменения только указанного набора полей. State в этом случае меняется только если fields включает в себя весь набор измененных полей.

addField

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

FormattableMixin
addFieldToprotected

Добавляет поле в запись. Если формат не указан, то он строится по типу значения поля.

clone

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

ICloneable
constructor

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

OptionsToPropertyMixin
destroy

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

DestroyableMixin
detach

Отвязывает запись от рекордсета: сбрасывает ссылку на владельца и устанавливает состояние detached.

each

Перебирает все поля записи

extend
filter

Создает запись c набором полей, ограниченным фильтром.

filterFieldsprotected

Создает запись c указанным набором полей

fromJSON

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

SerializableMixin
fromObject

Создает запись по объекту c учетом типов значений полей. Поля добавляются в запись в алфавитном порядке.

get

Возвращает значение свойства.

Если свойство не существует, возвращает undefined.

Если свойство является объектом, то всегда возвращается один и тот же объект (если он не был заменен через вызов метода set).

IObject
getAdapter

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

FormattableMixin
getChanged

Возвращает массив названий измененных полей.

getEnumerator

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

getEventHandlers

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

ObservableMixin
getFormat

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

FormattableMixin
getOwner

Возвращает рекордсет, которому принадлежит запись. Может не принадлежать рекордсету.

getRawData

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

FormattableMixin
getState

Возвращает текущее состояние записи.

getVersion

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

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

IVersionable
has

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

IObject
hasDeclaredFormat

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

FormattableMixin
hasEventHandlers

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

ObservableMixin
isChanged

Возвращает признак, что поле с указанным именем было изменено.

Если name не передано, то проверяет, что изменено хотя бы одно поле.

isDestroyedprotected
DestroyableMixin
isEqual

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

IEquatable
rejectChanges

Возвращает запись к состоянию, в котором она была с момента последнего вызова acceptChanges:

  • Отменяются изменения всех полей;

  • State возвращается к состоянию, в котором он был сразу после вызова acceptChanges.

Если передан аргумент fields, то откатываются изменения только указанного набора полей. State в этом случае меняется только если fields включает в себя весь набор измененных полей.

removeField

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

FormattableMixin
removeFieldAt

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

FormattableMixin
resetDeclaredFormat

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

FormattableMixin
set

Устанавливает значение свойства.

Если свойство только для чтения, генерирует исключение.

IObject
setRawData

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

FormattableMixin
setState

Устанавливает текущее состояние записи.

subscribe

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

ObservableMixin
toJSON

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

SerializableMixin
toString

Возвращает значения всех свойств в виде строки формата json

unsubscribe

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

ObservableMixin

События

onPropertyChange

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

IObservableObject

Тайпдефы

RecordState

FAQ

4/13/2021Мальцев А.А.