Объекты сеансов

Существует восемь объектов уровня сеанса:

В каждом сеансе существует по одной копии каждого из этих объектов (она имеет уникальный идентификатор). Все ссылки указывают на одну и ту же копию. Любой из объектов сеанса можно получить по имени, ИД в базе данных, URI или с помощью поиска (для этого есть соответствующие методы). Ссылку на объект сеанса также можно получить через методы get других объектов. Например, если RAMAsset имеет ИД владельца kjones, то метод getOwner() этого объекта возвращает объект RAMUser kjones в сеанс, если это не было сделано ранее.

Существует два способа фиксации изменений объектов сеанса. Метод API RAMSession.putAssets(IProgressMonitor) фиксирует все локальные изменения объектов ресурсов в очереди. RAMSession.put(IRAMSessionObject, IProgressMonitor) фиксирует изменения отдельного объекта сеанса.

RAMSession имеет методы создания новых экземпляров любого из объектов сеанса. После вызова метода create объект следует заполнить данными и зафиксировать изменения, чтобы создать этот объект на сервере. См. Создание нового ресурса, Создание нового сообщества, Создание нового типа ресурса, Создание новой схемы категорий, Создание нового атрибута ресурса и Регистрация пользователя.

Во время удаления объектов сеанса с сервера метод RAMSessionObject.setAction(RAMAction.DELETE) помечает объект сеанса для удаления, а метод RAMSession.put() удаляет его. См. Удаление ресурса, Удаление сообщества, Удаление типа ресурсов, Удаление схемы категорий, Удаление типа взаимосвязи, Удаление атрибутов ресурсов. Пользователей удалять с сервера нельзя.

Для удаления объекта из кэша сеанса и отмены всех изменений объекта используется метод RAMSession.remove(IRAMSessionObject).

Прим.: В объекте RAMSession не предусмотрена поддержка нитей, которую необходимо обеспечить. После вызова метода RAMSession.release()объект RAMSession использовать нельзя.

Комментарии