aas-specs
aas-specs copied to clipboard
Introduce ContainerElement as SubmodelElement interface
Is your feature request related to a problem? Please describe. In documentation and implementation we often describe special aspects of SubmodelElements, that may contain other SubmodelElements. It would be handsome to define a corresponding interface, so that we can talk about them.
For reference / completeness checks it would be handsome to have that interface, so that a developer could easily identify all SubmodelElements, that require more attention.
Describe the solution you'd like Introduce an interface "ContainerElement" comparable to DataElement and apply it to AnnotatedRelationshipElement, Entity, SubmodelElementCollection, SubmodelElementList.
Handsome enhancements:
- Operation "isIdShortRequired" -> returning true for all SubmodelElements except from SubmodelElementList
- Operation "getContainedElements" -> returning Elements contained (values, statements, annotations, ....)
These operations should be seen as recommendations to SDK implementations, what they could provide as convenience operations.
Interface and operations have no effect on serialization.
TF AAS Part 1 2024-05-15
- Introduction of abstract class "ContainerElement" would be backward compatible
- it might make Value-Only explanation easier
- to include operations would break concept of Part 1: there are no operations in classes so far ==> do not add operations here
- not necessarily impact on existing implementations, only for those who reflect also all abstract classes etc. ==> Decision Proposal: accept
Workstream AAS Spec 2024-06-13 Approved to add an abstract class "ContainerElement". These classes will inherit from this class:
- AnnotatedRelationshipElement,
- Entity,
- SubmodelElementCollection,
- SubmodelElementList
Operation might need to be reconsidered later to be added as well