-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce ContainerElement as SubmodelElement interface #420
Comments
TF AAS Part 1 2024-05-15
|
Workstream AAS Spec 2024-06-13
Operation might need to be reconsidered later to be added as well |
compare to #434: removing abstract class was considered to be risky to change. So I wonder whether introducing a new abstract class has the same effect. |
2024-11-27 TF Metamodel If users of a SDK use an abstract class it is not backward compatible if the class is removed key type enumeration needs to be extended by the new abstract class (similar to DataElement and SubmodelElement): this could lead to incompatibility. If V3.1 application uses new ContainerElement but a V3.0 application consumes it then the V3.0 application would not be able to handle this and throws serialization error. The following options:
Solution 3 can also be combined with the other two solutions |
The new version of the specification introduces a new abstract class `Container_element`. This class is used to describe concrete classes that are able to "contain" other classes from the meta-model. Concretely, this means that the classes: - `Annotated_relationship_element` - `Entity` - `Submodel_element_collection` - `Submodel_element_list` now inherit from the `Container_element` class. See these resources: - [Link to spec] - Issue that introduces the class: [aas-specs#420] - Issue for the reasoning behind the new class: [aas-specs#333] - PR that introduces it into the spec: [aas-specs#500] [Link to spec]: https://admin-shell-io.github.io/aas-specs-antora/IDTA-01001/v3.1/spec-metamodel/submodel-elements.html#container-element-and-overview-of-data-element-types [aas-specs#420]: admin-shell-io/aas-specs#420 [aas-specs#333]: admin-shell-io/aas-specs#333 [aas-specs#500]: admin-shell-io/aas-specs#500
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:
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.
The text was updated successfully, but these errors were encountered: