blob: fe96d3176121ac8f46d09ca43c2340e495eb3e1c [file] [log] [blame]
Johannes Wendel11b6dae2019-11-13 13:13:38 +01001/*
2 * Qualifier.h
3 *
4 * Author: wendel
5 */
6
7#ifndef BASYX_SUBMODEL_METAMODEL_MAP_QUALIFIER_QUALIFIABLE_QUALIFIER_H_
8#define BASYX_SUBMODEL_METAMODEL_MAP_QUALIFIER_QUALIFIABLE_QUALIFIER_H_
9
10#include "Constraint.h"
Thomas Psota176a20c2019-11-27 11:52:28 +010011#include "submodel/api/qualifier/qualifiable/IQualifier.h"
12#include "submodel/map/qualifier/HasSemantics.h"
Johannes Wendeled007a12019-11-25 17:09:45 +010013#include "basyx/object.h"
Johannes Wendel11b6dae2019-11-13 13:13:38 +010014
15namespace basyx {
16namespace submodel {
Johannes Wendel11b6dae2019-11-13 13:13:38 +010017
Johannes Wendel10dc5522019-12-04 11:20:14 +010018class Qualifier
19 : public Constraint
20 , public IQualifier
21 , public HasSemantics
22 , public virtual basyx::vab::ElementMap
Johannes Wendel11b6dae2019-11-13 13:13:38 +010023{
24public:
25 ~Qualifier() = default;
26
27 // constructors
28 Qualifier();
Thomas Psotab49d8df2019-11-27 15:55:41 +010029 Qualifier(
30 const std::string & qualifierType,
31 const basyx::object & qualifierValue,
32 const std::shared_ptr<IReference> & valueId);
Johannes Wendel11b6dae2019-11-13 13:13:38 +010033
34 // Inherited via IQualifier
35 virtual std::string getQualifierType() const override;
Johannes Wendeled007a12019-11-25 17:09:45 +010036 virtual basyx::object getQualifierValue() const override;
Thomas Psotab49d8df2019-11-27 15:55:41 +010037 virtual std::shared_ptr<IReference> getQualifierValueId() const override;
Johannes Wendel11b6dae2019-11-13 13:13:38 +010038
39 // not inherited
40 void setQualifierType(const std::string & qualifierType);
Johannes Wendeled007a12019-11-25 17:09:45 +010041 void setQualifierValue(const basyx::object & qualifierValue);
Thomas Psotab49d8df2019-11-27 15:55:41 +010042 void setQualifierValueId(const std::shared_ptr<IReference> & valueId);
Johannes Wendel11b6dae2019-11-13 13:13:38 +010043};
44
45}
46}
Johannes Wendel11b6dae2019-11-13 13:13:38 +010047
48#endif