[great-users] be careful with crosslink rolenames
Attila Vizhanyo
viza at isis.vanderbilt.edu
Tue Sep 20 16:43:49 CDT 2005
In Udm, each Uml Class is compiled into a C++ class definition..
This C++ class (1) has a number of auto-generated member functions, like
'Instances', 'Derived', etc, (2) is itself derived from a generic Udm
class called Object, that also has some public parameterless methods.
Furthermore, each association is compiled into a C++ class member
function where the function name is equal to the role name at the
corresponding end of the association. I think this is a straightforward
and clean design.
So the problem is the co-existence, and therefore, the clash of
user-defined and the runtime-framework-defined member function names.
Unfortunately, current OO langugaes C++, C# and Java do not allow the
specification of namespaces within class definitions.
So I currently don't see how should we remove this awkard limitation.
Of course the Udm tools should be smart enough to alert the user when a
name clash is likely to happen.
HTH,
Attila
Krishnakumar B wrote:
>Hi Attila,
>
>On Tue, 20 Sep 2005 15:18:39 -0500, Attila Vizhanyo wrote:
>
>
>>Thanks Matt for calling our attention to this hidden implementation feature.
>>
>>Here is a list of reserved names in Udm. You cannot use these names as
>>association role names when specifying a UML class diagram.
>>- Instances
>>- Derived
>>- ArcheType
>>- instances
>>- derived
>>- archetype
>>- hasRealArchetype
>>- isInstance
>>- isSubtype
>>- __impl
>>- type
>>- uniqueId
>>- container
>>- GetAdjacentObjects
>>- GetAdjacentUniqueObjects
>>- GetParent
>>- GetChildObjects
>>- GetPeersFromAssociationClassObject
>>- DeleteObject
>>
>>
>
>Wouldn't namespaces solve the issues with name clashes?
>
>-kitty.
>
>
>
More information about the great-users
mailing list