Рекурсия в OCL

Предположим, у меня есть эта диаграмма классов в UML:

рекурсия в OCL

Как я могу в OCL указать, что экземпляр A не включается в list_of_As рекурсивно? Другими словами, экземпляр A не может быть включен в A.list_of_As и не может быть включен во все list_of_As всех экземпляров A в A.list_of_As и т. д.?


person Julien Mellerin    schedule 23.12.2012    source источник


Ответы (1)


Вы можете использовать транзитивное замыкание оператор closure(), чтобы получить список A. Затем просто проверьте отсутствие элемента, который вы не хотите видеть в этом списке.

person Community    schedule 23.12.2012