OCL question

OCL question

From: Humberto Castejon <beconico_at_gmail.com>
Date: Fri, 22 Feb 2008 19:47:20 +0100
Message-ID: <47BF18B8.2070208@gmail.com>

I have some problems using OCL together with collaborations and collaboration uses. I would be very grateful if you oculd help me with 
the following.

Imagine we have a Sale collaboration with two roles: buyer and seller. Now, by means of a collaboration use, we bind both roles to the 
same classifier, namely Person. An instance of Person may then behave either as a seller or as a buyer in a Sale collaboration. 
However, we do not want the same instance of Person to play both the seller and the buyer roles in the same occurrence of a Sale 
collaboration (i.e. we do not want a person to sell to herself).

Would the following OCL invariant, specified in the context of the collaboration use, be correct?

Context s:Sale
inv s.roleBinding->forAll(b1, b2 | b1.client.allInstances->forall(Person p1 | b2.client.allInstances->forall(Person p2 | p1 <> p2)))

Thanks for you help!

Received on Fri 22 Feb 2008 - 18:47:10 GMT