[great-users] be careful with crosslink rolenames

Attila Vizhanyo viza at isis.vanderbilt.edu
Tue Sep 20 16:50:16 CDT 2005


Just a short addendum to this. The .Net CLR fully supports the ability 
for a type to define multiple methods that differ only by return type.
Unfortunately, this platform feature is not exposed to the language 
level, i.e. C#, VB.Net do not allow this.
Maybe we should generate IL code in the next generation of our tools. ;)

Thanks,
Attila


Attila Vizhanyo wrote:

> 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.
>>
>>  
>>
> _______________________________________________
> great-users mailing list
> great-users at list.isis.vanderbilt.edu
> http://list.isis.vanderbilt.edu/mailman/listinfo/great-users
>


More information about the great-users mailing list