blob: 590be73cf9366a3c980afbf394e7f66123b7d881 [file] [log] [blame]
#ifndef BASYX_MAP_V2_SDK_CONCEPTDESCRIPTION_H
#define BASYX_MAP_V2_SDK_CONCEPTDESCRIPTION_H
#include <BaSyx/vab/ElementMap.h>
#include <BaSyx/submodel/api_v2/parts/IConceptDescription.h>
#include <BaSyx/submodel/api_v2/dataspecification/IDataSpecification.h>
#include <BaSyx/submodel/map_v2/qualifier/Identifiable.h>
#include <BaSyx/submodel/map_v2/common/ElementContainer.h>
#include <BaSyx/submodel/map_v2/qualifier/HasDataSpecification.h>
#include <BaSyx/submodel/map_v2/dataspecification/DataSpecification.h>
#include <BaSyx/submodel/map_v2/reference/Reference.h>
namespace basyx {
namespace submodel {
namespace map {
struct ConceptDescriptionPath
{
static constexpr char ModelType[] = "ConceptDescription";
static constexpr char IsCaseOf[] = "isCaseOf";
static constexpr char EmbeddedDataSpecifications[] = "embeddedDataSpecifications";
};
class ConceptDescription
: public api::IConceptDescription
, public virtual Identifiable
, public virtual HasDataSpecification
{
private:
std::vector<std::unique_ptr<api::IReference>> is_case_of_refs;
ElementContainer<api::IDataSpecification> embedded_data_specs;
public:
ConceptDescription(const std::string & idShort, const simple::Identifier & identifier);
const std::vector<std::unique_ptr<api::IReference>> & getIsCaseOf() const override;
const api::IElementContainer<api::IDataSpecification> & getEmbeddedDataSpecification() const override;
//not inherited
void addIsCaseOf(std::unique_ptr<Reference> reference);
void addEmbeddedDataSpecification(std::unique_ptr<DataSpecification> data_specification);
};
}
}
}
#endif //BASYX_MAP_V2_SDK_CONCEPTDESCRIPTION_H