1#ifndef IV_SRC_MODEL_DIAMAR_GROUPS_HPP_
2#define IV_SRC_MODEL_DIAMAR_GROUPS_HPP_
5#include "model/structs.hpp"
51 static constexpr std::string_view
names {
"Names"};
52 static constexpr std::string_view
longNames {
"LongNames"};
54 static constexpr std::string_view
name {
"Name"};
55 static constexpr std::string_view
longName {
"LongName"};
56 static constexpr std::string_view
description {
"Description"};
61 static constexpr std::string_view
id {
"Id"};
67 static constexpr std::string
string {};
74struct Groups : std::map<iv::types::groupId, iv::model::diamar::Group>
87 [[nodiscard]] std::shared_ptr<iv::model::diamar::Groups>
clone()
const;
90 [[nodiscard]] std::vector<iv::types::groupId>
getGroupsIds()
const;
92 [[nodiscard]] std::optional<std::reference_wrapper<iv::model::diamar::Group>>
101 static constexpr std::string_view
groups {
"Groups"};
102 static constexpr std::string_view
group {
"Group"};
Definition xmlFile.hpp:15
Definition DiamarModel.cpp:14
std::uint8_t groupIdForLom
Definition types.hpp:81
std::string groupId
Definition types.hpp:70
eLanguage
Definition enums.hpp:37
Definition structs.hpp:29
static constexpr iv::eLanguage language
Definition Groups.hpp:68
static constexpr iv::types::groupId groupId
Definition Groups.hpp:69
static constexpr uint8_t groupIdForLom
Definition Groups.hpp:70
static constexpr std::string_view groupIdForLom
Definition Groups.hpp:62
static constexpr std::string_view names
Definition Groups.hpp:51
static constexpr std::string_view longNames
Definition Groups.hpp:52
static constexpr std::string_view descriptions
Definition Groups.hpp:53
static constexpr std::string_view description
Definition Groups.hpp:56
static constexpr std::string_view name
Definition Groups.hpp:54
static constexpr std::string_view longName
Definition Groups.hpp:55
std::string_view getDescription(iv::eLanguage language=iv::eLanguage::English) const
Definition Groups.cpp:105
bool load(const iv::file::xml::node &nodeGroup)
Loads the group from the XML node.
Definition Groups.cpp:57
iv::model::LocalizedText longNames
Definition Groups.hpp:43
std::string_view getName(iv::eLanguage language=iv::eLanguage::English) const
Definition Groups.cpp:95
std::string_view getLongName(iv::eLanguage language=iv::eLanguage::English) const
Definition Groups.cpp:100
iv::types::groupIdForLom idForLom
Definition Groups.hpp:46
bool save(iv::file::xml::node &nodeGroup) const
Definition Groups.cpp:76
iv::model::LocalizedText names
Definition Groups.hpp:42
Group & operator=(const Group &other)
Definition Groups.cpp:29
Group(const Group &other)
iv::model::LocalizedText description
Definition Groups.hpp:44
Definition Groups.hpp:100
static constexpr std::string_view group
Definition Groups.hpp:102
static constexpr std::string_view groups
Definition Groups.hpp:101
std::vector< iv::types::groupId > getGroupsIds() const
Definition Groups.cpp:211
bool save(iv::file::xml::node &rootNode) const
Definition Groups.cpp:170
std::optional< std::reference_wrapper< iv::model::diamar::Group > > getGroup(const iv::types::groupId &groupId)
Definition Groups.cpp:230
iv::types::groupIdForLom getFirstFreeLomId()
Definition Groups.cpp:249
bool load(const iv::file::xml::node &rootNode)
Definition Groups.cpp:148
Groups(Groups &&other) noexcept
Groups(const Groups &other)
std::shared_ptr< iv::model::diamar::Groups > clone() const
Definition Groups.cpp:187
std::vector< Group > getGroupsOrderedByLomId() const
Definition Groups.cpp:264
iv::model::diamar::Group getGroupByLomId(iv::types::groupIdForLom lomId)
Definition Groups.cpp:236
iv::model::diamar::Group & getGroupAt(uint64_t index)
Definition Groups.cpp:223
Groups & operator=(const Groups &other)
Definition Groups.cpp:118
std::vector< std::string_view > getGroupsNames(iv::eLanguage language)
Definition Groups.cpp:199