Skip to content
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

Open
alexgordtop opened this issue Apr 22, 2024 · 2 comments
Open

Introduce ContainerElement as SubmodelElement interface #420

alexgordtop opened this issue Apr 22, 2024 · 2 comments
Labels
accepted accepted in principle to be fixed
Milestone

Comments

@alexgordtop
Copy link

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.

@BirgitBoss
Copy link
Collaborator

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

@BirgitBoss BirgitBoss added this to the V3.1 milestone May 15, 2024
@BirgitBoss BirgitBoss added requires workstream approval strategic decision in spec team needed ready for approval TF proposes how to resolve the issue. Needs final approval my Workstream labels May 15, 2024
@BirgitBoss
Copy link
Collaborator

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

@BirgitBoss BirgitBoss added accepted accepted in principle to be fixed and removed requires workstream approval strategic decision in spec team needed ready for approval TF proposes how to resolve the issue. Needs final approval my Workstream labels Jun 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accepted accepted in principle to be fixed
Projects
None yet
Development

No branches or pull requests

2 participants