Перейти к основному содержимому
Версия: 7.0

Оператор CHANGECLASS

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

Синтаксис

CHANGECLASS expr TO className [WHERE whereExpr]

Описание

Оператор CHANGECLASS создает действие, которое присваивает класс className объекту, заданному выражением expr, для каждого набора аргументов, для которого whereExpr не равно NULL.

Оператор может вводить локальный параметр в expr; в этом случае блок WHERE обязателен. Такой параметр соответствует перебираемым объектам и не является параметром создаваемого действия.

Параметры

  • expr

    Выражение или типизированный параметр для объекта, класс которого изменяется. В качестве типизированного параметра можно использовать как уже объявленный параметр, так и объявить новый локальный параметр; при использовании выражения добавлять новые локальные параметры нельзя.

  • className

    Имя пользовательского класса, в который переводится класс объекта. Составной идентификатор. Класс должен быть конкретным.

  • whereExpr

    Выражение, значение которого является условием изменения класса. Если не задано, считается равным TRUE.

Примеры

CLASS Document;
date = DATA DATE (Document);

CLASS ClosedDocument : Document;
// переводит все документы с датой старше 2-х недель в статус закрыт
changeStatus() {
CHANGECLASS Document d TO ClosedDocument WHERE sum(date(d), 14) <= currentDate();
}