[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