I haven't played with the relation example yet, but will real soon. Just some initial thoughts...I like RelationSlot. To me association seems one-way while a relation is two-way.btw, Is there some reason to not match the syntax of the often cited paper "Flexible Object Layout" ?I see one advantage is that its easier to read all the slot names vertically aligned.Object subclass: #SlotExampleMovieslots: {#name.#year.#director => ToOneRelationSlot opposite: #directedMovies class: #SlotExamplePerson.#actors => ToManyRelationSlot opposite: #actedInMovies class: #SlotExamplePerson. }classVariables: { }category: 'SlotAssociations-Tests-Example'Also maybe an alternative slot class name so that it reads more like a sentence... "#director related to one #directedMovies in class #SlotExamplePerson"Object subclass: #SlotExampleMovieslots: {#name.#year.#director => RelatedToOne inverse: #directedMovies inClass: #SlotExamplePerson.#actors => RelatedToMany inverse: #actedInMovies inClass: #SlotExamplePerson. }classVariables: { }category: 'SlotAssociations-Tests-Example'Or even...Object subclass: #SlotExampleMovieslots: {#name.#year.#director => OneRelatedTo many: #directedMovies inClass: #SlotExamplePerson.#actors => ManyRelatedTo many: #actedInMovies inClass: #SlotExamplePerson. }classVariables: { }category: 'SlotAssociations-Tests-Example'cheers -benOn Tue, Feb 24, 2015 at 2:33 AM, Jan van de Sandt <jvdsandt@gmail.com> wrote:On Mon, Feb 23, 2015 at 9:59 AM, Marcus Denker <marcus.denker@inria.fr> wrote:
> On 21 Feb 2015, at 21:11, Jan van de Sandt <jvdsandt@gmail.com> wrote:
>
> Today I experimented a little with the new Slots feature of Pharo 4.0. As an example I implemented support for associations/relationships.
>
Very nice! Can I add this to Pharo4 as an example?
Sure, cool!My idea is that at first we add these things as examples, and then later take the examples and distill a library of
generally useful slots.
That sounds like a good approach to get familiar with these kind of new features.Some things I can do to improve the Example- Add an option to make one side of the association readonly. In most situations I think it's a good idea to update an association only from one side to keep things simple.- Whats a better name AssociationSlot or RelationSlot? I'm not sure- As Stéphane said, isn't there a nicer way to declare the associations?- Better error handlingJan.