blob: 994b6014e3b1c87fb2a50d06ee5d82e9c3cac350 [file] [log] [blame]
/*
* IProperty.h
*
* Created on: 29.04.2018
* Author: kuhn, wendel
*/
#ifndef API_IPROPERTY_H_
#define API_IPROPERTY_H_
#include <BaSyx/submodel/api/submodelelement/IDataElement.h>
#include <BaSyx/shared/types.h>
namespace basyx {
namespace submodel {
/* *********************************************************************************
* Property interface
* *********************************************************************************/
class IProperty : public virtual IDataElement
{
public:
enum class PropertyType
{
Single, Collection, Map, Container
};
public:
struct Path {
static constexpr char Value[] = "value";
static constexpr char ValueId[] = "valueId";
static constexpr char ValueType[] = "valueType";
static constexpr char ModelType[] = "Property";
};
public:
virtual PropertyType getPropertyType() const = 0;
virtual void setValueId(const std::string & valueId) = 0;
virtual std::string getValueId() const = 0;
};
}
}
#endif /* API_IPROPERTY_H_ */