blob: 3633fbc96a1b49dd1802b4f1615150bdebcbf6e1 [file] [log] [blame]
/*
* HasDataSpecification.cpp
*
* Author: wendel
*/
#include <BaSyx/submodel/map/qualifier/HasDataSpecification.h>
#include <BaSyx/submodel/map/reference/Reference.h>
namespace basyx {
namespace submodel {
HasDataSpecification::HasDataSpecification()
: vab::ElementMap{}
{
this->map.insertKey(Path::HasDataSpecification, basyx::object::make_list<basyx::object>());
}
HasDataSpecification::HasDataSpecification(basyx::object & obj)
: vab::ElementMap{obj}
{
}
HasDataSpecification::HasDataSpecification(const basyx::specificCollection_t<IReference>& refs)
: vab::ElementMap{}
{
this->setDataSpecificationReferences(refs);
}
HasDataSpecification::HasDataSpecification(const IHasDataSpecification & hasDataSpecification)
: vab::ElementMap{}
{
this->setDataSpecificationReferences(hasDataSpecification.getDataSpecificationReferences());
}
basyx::specificCollection_t<IReference> HasDataSpecification::getDataSpecificationReferences() const
{
auto obj_list = this->map.getProperty(Path::HasDataSpecification).Get<basyx::object::object_list_t&>();
return vab::ElementMap::make_specific_collection<IReference, Reference>(obj_list);
}
void HasDataSpecification::setDataSpecificationReferences(const basyx::specificCollection_t<IReference> & references)
{
auto list = basyx::object::make_list<basyx::object>();
for (const auto & ref : references)
{
Reference reference{ ref->getKeys() };
list.insert(reference.getMap());
};
this->map.insertKey(Path::HasDataSpecification, list, true);
}
}
}