Thomas Psota | 7e562b6 | 2020-04-30 15:11:32 +0200 | [diff] [blame] | 1 | #ifndef BASYX_SUBMODEL_SIMPLE_PARTS_CONCEPTDESCRIPTION_H |
| 2 | #define BASYX_SUBMODEL_SIMPLE_PARTS_CONCEPTDESCRIPTION_H |
| 3 | |
| 4 | #include <BaSyx/submodel/api_v2/parts/IConceptDescription.h> |
| 5 | #include <BaSyx/submodel/simple/qualifier/HasDataSpecification.h> |
| 6 | #include <BaSyx/submodel/simple/qualifier/Identifiable.h> |
| 7 | #include <BaSyx/submodel/simple/common/ElementContainer.h> |
Constantin Ziesche | 02817f1 | 2020-08-04 21:40:43 +0200 | [diff] [blame^] | 8 | #include <BaSyx/submodel/simple/dataspecification/DataSpecification.h> |
Thomas Psota | 7e562b6 | 2020-04-30 15:11:32 +0200 | [diff] [blame] | 9 | |
| 10 | |
| 11 | namespace basyx { |
| 12 | namespace submodel { |
| 13 | namespace simple { |
| 14 | |
Constantin Ziesche | 02817f1 | 2020-08-04 21:40:43 +0200 | [diff] [blame^] | 15 | class ConceptDescription |
| 16 | : public virtual api::IConceptDescription |
| 17 | , public Identifiable |
Thomas Psota | 7e562b6 | 2020-04-30 15:11:32 +0200 | [diff] [blame] | 18 | { |
Constantin Ziesche | 02817f1 | 2020-08-04 21:40:43 +0200 | [diff] [blame^] | 19 | private: |
Thomas Psota | 7e562b6 | 2020-04-30 15:11:32 +0200 | [diff] [blame] | 20 | HasDataSpecification dataSpec; |
Constantin Ziesche | 02817f1 | 2020-08-04 21:40:43 +0200 | [diff] [blame^] | 21 | std::vector<std::unique_ptr<api::IReference>> isCaseOf; |
Thomas Psota | 7e562b6 | 2020-04-30 15:11:32 +0200 | [diff] [blame] | 22 | ElementContainer<api::IDataSpecification> embeddedDataSpecs; |
| 23 | public: |
| 24 | ConceptDescription(const std::string & idShort, const Identifier & identifier); |
| 25 | |
Constantin Ziesche | 02817f1 | 2020-08-04 21:40:43 +0200 | [diff] [blame^] | 26 | ~ConceptDescription() override = default; |
Thomas Psota | 7e562b6 | 2020-04-30 15:11:32 +0200 | [diff] [blame] | 27 | |
| 28 | // Inherited via IConceptDescription |
Constantin Ziesche | 02817f1 | 2020-08-04 21:40:43 +0200 | [diff] [blame^] | 29 | const std::vector<std::unique_ptr<api::IReference>> & getIsCaseOf() const override; |
| 30 | const api::IElementContainer<api::IDataSpecification> & getEmbeddedDataSpecification() const override; |
Thomas Psota | 7e562b6 | 2020-04-30 15:11:32 +0200 | [diff] [blame] | 31 | |
| 32 | // Inherited via IHasDataSpecification |
Constantin Ziesche | 02817f1 | 2020-08-04 21:40:43 +0200 | [diff] [blame^] | 33 | void addDataSpecification(const Reference & reference) override; |
| 34 | const std::vector<Reference> getDataSpecificationReference() const override; |
Thomas Psota | 7e562b6 | 2020-04-30 15:11:32 +0200 | [diff] [blame] | 35 | |
Constantin Ziesche | 02817f1 | 2020-08-04 21:40:43 +0200 | [diff] [blame^] | 36 | //not inherited |
| 37 | void addIsCaseOf(std::unique_ptr<simple::Reference> reference); |
| 38 | void addEmbeddedDataSpecification(std::unique_ptr<DataSpecification> data_specification); |
Thomas Psota | 7e562b6 | 2020-04-30 15:11:32 +0200 | [diff] [blame] | 39 | }; |
| 40 | |
| 41 | } |
| 42 | } |
| 43 | } |
| 44 | |
| 45 | #endif /* BASYX_SUBMODEL_SIMPLE_PARTS_CONCEPTDESCRIPTION_H */ |