blob: 882f8ce2a70e9c671f74f3212bb0d6fb5db59e8f [file] [log] [blame]
#include <BaSyx/submodel/map_v2/qualifier/Identifiable.h>
using namespace basyx::submodel;
using namespace basyx::submodel::map;
using namespace basyx::submodel::api;
constexpr char Identifiable::Path::IdType[];
constexpr char Identifiable::Path::Id[];
constexpr char Identifiable::Path::AdministrativeInformation[];
constexpr char Identifiable::Path::Identifier[];
Identifiable::Identifiable(const std::string & idShort, const simple::Identifier & identifier)
: Referable(idShort)
, vab::ElementMap()
{
auto identifierMap = basyx::object::make_map();
identifierMap.insertKey(Path::Id, identifier.getId());
identifierMap.insertKey(Path::IdType, IdentifierType_::to_string(identifier.getIdType()));
this->map.insertKey(Path::Identifier, identifierMap);
}
bool Identifiable::hasAdministrativeInformation() const noexcept
{
return not this->map.getProperty(Path::AdministrativeInformation).IsNull();
};
simple::Identifier Identifiable::getIdentification() const
{
auto identifierMap = this->map.getProperty(Path::Identifier);
return simple::Identifier{
IdentifierType_::from_string(identifierMap.getProperty(Path::IdType).Get<std::string&>()),
identifierMap.getProperty(Path::Id).Get<std::string&>()
};
}
const api::IAdministrativeInformation & Identifiable::getAdministrativeInformation() const
{
return this->administrativeInformation;
}
api::IAdministrativeInformation & Identifiable::getAdministrativeInformation()
{
return this->administrativeInformation;
}
void Identifiable::setAdministrativeInformation(const AdministrativeInformation &administrativeInformation)
{
this->administrativeInformation = administrativeInformation;
this->map.insertKey(Path::AdministrativeInformation, this->administrativeInformation.getMap());
}