blob: 813d5832266876542f9daad85082091d27177c94 [file] [log] [blame]
#ifndef BASYX_SUBMODEL_SIMPLE_PARTS_CONCEPTDICTIONARY_H
#define BASYX_SUBMODEL_SIMPLE_PARTS_CONCEPTDICTIONARY_H
#include <BaSyx/submodel/api_v2/parts/IConceptDictionary.h>
#include <BaSyx/vab/ElementMap.h>
#include <BaSyx/submodel/simple/qualifier/Referable.h>
#include <BaSyx/submodel/simple/common/ElementContainer.h>
#include <BaSyx/submodel/simple/parts/ConceptDescription.h>
namespace basyx {
namespace submodel {
namespace simple {
class ConceptDictionary
: public api::IConceptDictionary
{
private:
Referable referable;
ElementContainer<api::IConceptDescription> conceptDescriptions;
public:
ConceptDictionary(const std::string & idShort);
//inherited via IConceptDictionary
const api::IElementContainer<api::IConceptDescription> & getConceptDescriptions() const override;
// inherited via IReferable
virtual const std::string & getIdShort() const override;
virtual const std::string * const getCategory() const override;
virtual void setCategory(const std::string & category) override;
virtual simple::LangStringSet & getDescription() override;
virtual const simple::LangStringSet & getDescription() const override;
virtual void setParent(api::IReferable * parent) override;
virtual IReferable * getParent() const override;
virtual simple::Reference getReference() const override;
//not inherited
void addConceptDescription(std::unique_ptr<ConceptDescription> description);
virtual Key getKey(bool local = true) const override { return referable.getKey(); }
virtual KeyElements getKeyElementType() const override { return KeyElements::ConceptDictionary; };
};
}
}
}
#endif /* BASYX_SUBMODEL_SIMPLE_PARTS_CONCEPTDICTIONARY_H */