1 /* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
3 #include "base/primitivetype.hpp"
4 #include "base/dictionary.hpp"
6 using namespace icinga;
8 PrimitiveType::PrimitiveType(String name, String base, const ObjectFactory& factory)
9 : m_Name(std::move(name)), m_Base(std::move(base)), m_Factory(factory)
12 String PrimitiveType::GetName() const
17 Type::Ptr PrimitiveType::GetBaseType() const
22 return Type::GetByName(m_Base);
25 int PrimitiveType::GetAttributes() const
30 int PrimitiveType::GetFieldId(const String& name) const
32 Type::Ptr base = GetBaseType();
35 return base->GetFieldId(name);
40 Field PrimitiveType::GetFieldInfo(int id) const
42 Type::Ptr base = GetBaseType();
45 return base->GetFieldInfo(id);
47 throw std::runtime_error("Invalid field ID.");
50 int PrimitiveType::GetFieldCount() const
52 Type::Ptr base = GetBaseType();
55 return Object::TypeInstance->GetFieldCount();
60 ObjectFactory PrimitiveType::GetFactory() const