FUNCTION ROLESOF ( V : GENERIC_ENTITY ) : SET OF STRING;
Функция ROLESOF возвращает набор строк, содержащих полные уточненные имена ролей, исполняемых указанным экземпляром объекта. Полное уточненное имя определяется как имя атрибута, уточненное именем схемы и объекта, в которых объявлен данный атрибут (то есть 'SCHEMA.ENTITY.ATTRIBUTE').
Параметр: V - любой экземпляр объектного типа данных.
Результат: набор строковых значений (на верхнем регистре), содержащих полные уточненные имена атрибутов экземпляров объектов, использующих экземпляр V.
Если именованный тип данных импортирован посредством операторов USE или REFERENCE, то возвращаются также имя исходной схемы и имя именованного типа данных в этой схеме, если имело место переименование. Поскольку операторы USE могут быть связаны в цепочку, то возвращаются имена всех связанных схем и имена именованного типа данных во всех схемах.
Пример - Данный пример демонстрирует возможность использования точки в качестве центра окружности. Функция ROLESOF определяет, какие роли экземпляр объекта исполняет фактически.
SCHEMA that_schema; | ||||||
x, у, z : REAL; | ||||||
END_ENTITY; | ||||||
start, | ||||||
END_ENTITY; | ||||||
origin : point := point(0.0, 0.0, 0.0); | ||||||
END_CONSTANT; | ||||||
center | : point; | |||||
axis | : vector; | |||||
radius | : REAL; | |||||
END_ENTITY; | ||||||
... | ||||||
LOCAL | ||||||
p : point := point(1.0, 0.0, 0.0); | ||||||
END_LOCAL; | ||||||
... | ||||||
IF 'THIS_SCHEMA.CIRCLE.CENTRE' IN ROLESOF(p) THEN | -- true | |||||
... | ||||||
IF 'THIS_SCHEMA.LINE.START' IN ROLESOF(p) THEN | -- true | |||||
... | ||||||
IF 'THAT_SCHEMA.LINE.START' IN ROLESOF(p) THEN | -- true | |||||
... | ||||||
IF 'THIS SCHEMA.LINE.END' IN ROLESOF(p) THEN | -- false |