You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.2 KiB

7 months ago
/*
* Copyright 2023 Ingemar Hedvall
* SPDX-License-Identifier: MIT
*/
#pragma once
#include <map>
#include <memory>
#include <string>
#include <vector>
#include "a2l/a2lobject.h"
namespace a2l {
class Group : public A2lObject {
public:
void Root(bool root) { root_ = root; }
[[nodiscard]] bool Root() const { return root_; }
void RefCharacteristics(const std::vector<std::string>& list) {
ref_characteristic_list_ = list;
}
[[nodiscard]] const std::vector<std::string>& RefCharacteristics() const {
return ref_characteristic_list_;
}
void RefMeasurements(const std::vector<std::string>& list) {
ref_measurement_list_ = list;
}
[[nodiscard]] const std::vector<std::string>& RefMeasurements() const {
return ref_measurement_list_;
}
void SubGroups(const std::vector<std::string>& list) {
sub_group_list_ = list;
}
[[nodiscard]] const std::vector<std::string>& SubGroups() const {
return sub_group_list_;
}
private:
bool root_ = false;
std::vector<std::string> ref_characteristic_list_;
std::vector<std::string> ref_measurement_list_;
std::vector<std::string> sub_group_list_;
};
using GroupList = std::map<std::string, std::unique_ptr<Group>>;
} // end namespace a2l