No edit summary |
(Automatically adding template at the end of the page.) |
||
(10 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
Often when you add to | Often, when you add to an association with a link class, you want to do things with the created link object. | ||
Do | Do this: | ||
Add a method to either of the "main" classes with | [[File:Association_object.png|719x719px|border]] | ||
self.Flights. | |||
Add a method to either of the "main" classes with content similar to this: | |||
self.Flights.add(aFlight); | |||
self.Bookings->select(b | b.Flight = aFlight)->first | self.Bookings->select(b | b.Flight = aFlight)->first | ||
It adds the object at the other end to the association | There is an operator [[OCLOperators addReturnIndexOf0|addReturnIndexOf0]] that adds the Flight - and returns the zero based index of Booking. | ||
self.Bookings.at0(self.Flights.addReturnIndexOf0(aFlight)).AttributeOnBooking | |||
It adds the object at the other end to the association and looks up the created link object - in this case, a Booking object and returns it. | |||
Please note that it's usually good to set the names on the links, both the InnerLinkName and the LinkRoleName. | |||
In this example: this is the InnerLinkName and the LinkRoleName for the '''Person'''<nowiki/>'s end of the association. | |||
[[File:Linkrolename.png|none|frame]] | |||
Note! From the '''Booking''' object, it's only '''one''' Person object in the association. Hence, '''Person''', not '''Persons''' | Note! From the '''Booking''' object, it's only '''one''' Person object in the association. Hence, '''Person''', not '''Persons''' | ||
See also: [[Training:Association classes|Association classes]] | |||
[[Category:UML]] | |||
{{Edited|July|12|2024}} |
Latest revision as of 15:27, 10 February 2024
Often, when you add to an association with a link class, you want to do things with the created link object.
Do this:
Add a method to either of the "main" classes with content similar to this:
self.Flights.add(aFlight); self.Bookings->select(b | b.Flight = aFlight)->first
There is an operator addReturnIndexOf0 that adds the Flight - and returns the zero based index of Booking.
self.Bookings.at0(self.Flights.addReturnIndexOf0(aFlight)).AttributeOnBooking
It adds the object at the other end to the association and looks up the created link object - in this case, a Booking object and returns it.
Please note that it's usually good to set the names on the links, both the InnerLinkName and the LinkRoleName.
In this example: this is the InnerLinkName and the LinkRoleName for the Person's end of the association.
Note! From the Booking object, it's only one Person object in the association. Hence, Person, not Persons
See also: Association classes