Оператор 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();
}