@@ -32,10 +32,11 @@ package ProductSelection_N_ary {
3232 }
3333
3434 // Equivalent association definition showing library model specialization
35- // and implied cross subsetting.
35+ // implied cross subsetting, and "Cartesian product" features .
3636 assoc ProductSelection3 specializes Links::Link {
3737 end cart: ShoppingCart[1] crosses cart::product_account.inCart {
3838 member feature inCart: ShoppingCart[0..1] featured by Product_Account {
39+ // Represents the "Cartesian product" of Product X Account.
3940 member feature Product_Account : Account featured by Product;
4041 }
4142 member feature product_account : inCart::Product_Account featured by ProductSelection3 {
@@ -44,6 +45,7 @@ package ProductSelection_N_ary {
4445 }
4546 end selectedProduct: Product[1] crosses selectedProduct::cart_account.selectedProducts {
4647 member feature selectedProducts: Product[0..*] featured by Cart_Account {
48+ // Represents the "Cartesian product" of ShoppingCart X Account.
4749 member feature Cart_Account : Account featured by ShoppingCart;
4850 }
4951 member feature cart_account : selectedProducts::Cart_Account featured by ProductSelection3 {
@@ -52,6 +54,7 @@ package ProductSelection_N_ary {
5254 }
5355 end feature account : Account[1] crosses account::cart_product.withAccount {
5456 member feature withAccount[1..1] : Account featured by Cart_Product {
57+ // Represents the "Cartesian product" of ShoppingCart X Product.
5558 member feature Cart_Product : Product featured by ShoppingCart;
5659 }
5760 member feature cart_product : withAccount::Cart_Product featured by ProductSelection3 {
0 commit comments