blob: 16e0f08617c4b0dd681705046fc61bbe69573d93 [file] [log] [blame]
Thomas Psota0187a4e2020-04-30 15:12:54 +02001#ifndef BASYX_SUBMODEL_MAP_V2_SUBMODELELEMENT_SUBMODELELEMENT_H
2#define BASYX_SUBMODEL_MAP_V2_SUBMODELELEMENT_SUBMODELELEMENT_H
3
4#include <BaSyx/submodel/api_v2/submodelelement/ISubmodelElement.h>
5
6#include <BaSyx/submodel/map_v2/qualifier/HasDataSpecification.h>
7#include <BaSyx/submodel/map_v2/qualifier/Referable.h>
8#include <BaSyx/submodel/map_v2/reference/Reference.h>
9
10
11namespace basyx {
12namespace submodel {
13namespace map {
14
15class SubmodelElement :
16 public virtual api::ISubmodelElement,
17 public virtual vab::ElementMap,
18 public Referable,
19 public HasDataSpecification
20{
21private:
22 Reference semanticId;
23public:
jwendelil425bb0e92020-06-15 12:09:42 +020024 SubmodelElement(const std::string & idShort, ModelingKind kind = ModelingKind::Instance);
Thomas Psota0187a4e2020-04-30 15:12:54 +020025
26 virtual ~SubmodelElement() = default;
27
28 // Inherited via IHasDataSemantics
Thomas Psotafe6bb562020-05-14 14:41:11 +020029 virtual const api::IReference & getSemanticId() const override;
Thomas Psota0187a4e2020-04-30 15:12:54 +020030 void setSemanticId(const api::IReference & reference);
31
32 // Inherited via IHasKind
jwendelil425bb0e92020-06-15 12:09:42 +020033 virtual ModelingKind getKind() const override;
Thomas Psota0187a4e2020-04-30 15:12:54 +020034};
35
36}
37}
38}
39
40#endif /* BASYX_SUBMODEL_MAP_V2_SUBMODELELEMENT_SUBMODELELEMENT_H */