Closed TatjanaKutzner closed 3 years ago
@TatjanaKutzner Actually none of the DataTypes have superclasses. This looks like an issue with the template.
@TatjanaKutzner DataTypes and Unions have different behavior from the other classes. The reason is that DataTypes and Unions are datatype elements while everything else is a class. Datatypes do not support inheritance. Therefore they cannot be subclassed. The solution is to convert all datatype elements (DataTypes and Unions) to classes. The only obvious impact will be to make datatype subclassing possible.
@cmheazel I checked the UML specification. Both, DataType
and Class
, are specialisations of Classifier
. Classifier
defines a relationship with Generalization
. Thus, DataType
and Class
inherit this Generalization
relationship. I do not find a constraint in the UML specification saying that DataType
does not inherit the Generalization
relationship. This means that also DataTypes can be subclassed.
We cannot simply convert our data type elements to classes as the semantics would be changed.
@TatjanaKutzner It's more of a EA implementation issue then. For a Class
, the Element.BaseClasses
template tag resolves to the target class of any Generalization
relationship. The parent or super class. I cannot find a template tag which performs the same function for DataType
.
I'll throw something together to get the document out the door.
Hopefully we'll see a better tool suite from TC211 and Testbed 17.
Changes applied - the document is now aligned with the latest UML model.
The data types
StringAttribute
,IntAttribute
,DoubleAttribute
,DateAttribute
,UriAttribute
,MeasureAttribute
,CodeAttribute
, andGenericAttributeSet
are subclasses ofAbstractGenericAttribute
.The data dictionary, however, specifies
Subclass of: None
for these data types. This needs to be corrected.