major
#24728
Optionally inherit type default from attribute annotations
TLAttributeAnnotations (annotations on attributes in the model) are "inherited" from the attribute type by default. This means that if such an annotation is not set directly on an attribute, the annotation set on the attribute type is used (if one is set there). With #24139, this inheritance can be preventedby using the meta-annotation `NoTypeDefault` on the TLAttributeAnnotation.
Improvement
If the annotation is not set on the attribute’s target type either, you may want the annotation set on the first supertype of the attribute’s target type to apply (along the chain of primary supertypes of the attribute’s target type).
This can be achieved using the @DefaultStrategy(Strategy.PRIMARY_GENERALIZATION) annotation on the TLAttributeAnnotation.
Code Migration
The @NoTypeDefault annotation must be replaced with @DefaultStrategy(Strategy.NONE).
Test
- Export Binding Annotation com.top_logic.model.io.annotation.TLExportBinding