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

Опции

_mediator

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

ManyToManyMixin
acceptedStateprotected

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

adapter

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

FormattableMixin
cacheMode

Режим кеширования

changedFieldsprotected

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

cowprotected

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

FormattableMixin
destroyed

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

DestroyableMixin
eventBusChannelprotected

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

ObservableMixin
eventRaisingprotected

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

EventRaisingMixin
eventRaisingTriggerprotected

Hooks to implement additional behaviour when event rasing occuires

EventRaisingMixin
eventsQueueprotected

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

ObservableMixin
fieldsCacheprotected

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

fieldsCloneprotected

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

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
instanceNumberprotected

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

SerializableMixin
moduleNameprotected

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

SerializableMixin
optionsdeprecatedprotected
OptionsToPropertyMixin
publishedEventsprotected

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

ObservableMixin
rawData

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

FormattableMixin
rawDataAdapterprotected

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

FormattableMixin
rawDataFieldsprotected

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

FormattableMixin
state

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

versionCallback

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

VersionableMixin

Методы

acceptChanges

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

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

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

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

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

addField

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

FormattableMixin
addFieldToprotected

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

clone

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

ICloneable
constructor

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

OptionsToPropertyMixin
destroy

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

DestroyableMixin
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
isEventRaising

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

EventRaisingMixin
rejectChanges

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

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

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

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

removeField

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

FormattableMixin
removeFieldAt

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

FormattableMixin
resetDeclaredFormat

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

FormattableMixin
set

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

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

IObject
setEventRaising

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

EventRaisingMixin
setRawData

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

FormattableMixin
setState

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

subscribe

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

ObservableMixin
toJSON

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

SerializableMixin
toString

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

unsubscribe

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

ObservableMixin

События

onEventRaisingChange

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

EventRaisingMixin
onPropertyChange

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

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