Je suis confronté à un défi en essayant de vérifier les doublons dans OCL.Recherche de doublons imbriqués dans OCL
Voici une simplification du diagramme de classes:
+-----------+
|ChapterName|
+-----------+
^0..* chapterNames
|
^
V
+-------+ books 0..* +----+
|Catalog|<>------------>|Book|
+-------+ +----+
catalogs 0..*^ ^0..* books
| |
+----+ customers 0..* +--------+
|Shop|<>-------------->|Customer|
+----+ +--------+
Les attributs de chaque classe sont déclarées comme suit:
- Titre du chapitre
- Nom
- Catalogue
- Catégorie
Problème: Ce que je veux vérifier est si un client a des livres avec des noms de chapitre en double, qui appartiennent également à une catégorie spécifique dans notre catalogue.
Je n'ai pas réussi à comprendre la logique. Ce que j'ai jusqu'ici est:
context Shop
self.customers.books->select(cubks | cubks =
self.catalogs.books->select(cabks | cabks = cubks)->first())
... Qui devrait trouver les livres du catalogue dont un client a.
Question: Comment puis-je ajouter d'autres contraintes pour résoudre le problème ci-dessus?
Aussi. J'utilise Eclipse, EMF et la console OCL depuis Eclipse.