Использование цепочек описателей
рис. 7), где каждый последующий элемент ссылается на предыдущий через свойство <Root Handle>.
Присвоим в инспекторе объектов свойству <RootHandle> описателя ListAvtorBooks значение ListAllAvtors и запустим OCL-редактор (рис. 8). Хотя мы еще не ввели никакого OCL-выражения, но в навигационном окне отображаются теперь не все элементы нашей модели, а лишь те, которые относятся к классу <Автор>.
Это и понятно, ведь в качестве корневого описателя, то есть поставщика информации, мы выбрали не все объектное пространство, а лишь один его класс.
И теперь нам осталось дважды кликнуть по названию роли «napisal» и убедиться, что тип возвращаемого результата — это коллекция объектов типа <Книга>. После подключения BoldGrid2 к описателю ListAvtorBooks можно считать, что поставленная задача решена.
Даже на таком простом примере в полной мере проявляется гибкость, предоставляемая средой Borland MDA. В следующей части статьи мы продолжим разработку нашего приложения и более детально ознакомимся с возможностями OCL.