我在嘗試檢查OCL中的重複時面臨挑戰。在OCL中查找嵌套副本
下面是類圖的簡化:
+-----------+
|ChapterName|
+-----------+
^0..* chapterNames
|
^
V
+-------+ books 0..* +----+
|Catalog|<>------------>|Book|
+-------+ +----+
catalogs 0..*^ ^0..* books
| |
+----+ customers 0..* +--------+
|Shop|<>-------------->|Customer|
+----+ +--------+
用於每個類別的屬性的聲明如下:
- CHAPTERNAME
- 名稱
- 目錄
- 類別
問題: 我想檢查是如果客戶有重複的人名章任何書籍,這也屬於目錄中的一個特定的類別。
我還沒有設法繞過邏輯。到目前爲止,我所擁有的是:
context Shop
self.customers.books->select(cubks | cubks =
self.catalogs.books->select(cabks | cabks = cubks)->first())
...哪個應該從客戶的目錄中找到書籍。
問題:如何添加更多約束條件來解決上述問題?
另外。我在Eclipse中使用Eclipse,EMF和OCL控制檯。