SectionPairRowListValue.cpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*
  2. * Author: Patrick-Christopher Mattulat
  3. * Company: Lynar Studios
  4. * E-Mail: webmaster@lynarstudios.com
  5. * Created: 2023-02-10
  6. * Changed: 2023-02-11
  7. *
  8. * */
  9. #include <ls-std/core/evaluator/EmptyStringArgumentEvaluator.hpp>
  10. #include <ls-std/core/evaluator/IndexOutOfBoundsEvaluator.hpp>
  11. #include <ls-std/io/section-pair/evaluator/SectionPairRowValueArgumentEvaluator.hpp>
  12. #include <ls-std/io/section-pair/model/SectionPairRowListValue.hpp>
  13. ls::std::io::SectionPairRowListValue::SectionPairRowListValue() : ls::std::core::Class("SectionPairRowListValue"), ls::std::io::SectionPairRowValue(ls::std::io::SectionPairRowEnumType::SECTION_PAIR_ROW_LIST_VALUE)
  14. {}
  15. ls::std::io::SectionPairRowListValue::~SectionPairRowListValue() = default;
  16. void ls::std::io::SectionPairRowListValue::add(const ls::std::io::section_pair_row_value &_value)
  17. {
  18. ls::std::core::EmptyStringArgumentEvaluator{_value}.evaluate();
  19. ls::std::io::SectionPairRowValueArgumentEvaluator{_value, "section pair row list value \"" + _value + "\" contains invalid characters!"}.evaluate();
  20. this->values.push_back(_value);
  21. }
  22. ls::std::io::section_pair_row_value ls::std::io::SectionPairRowListValue::get(size_t _index)
  23. {
  24. ls::std::core::IndexOutOfBoundsEvaluator(_index, this->values.size()).evaluate();
  25. ls::std::io::section_pair_row_value value{};
  26. size_t index{};
  27. for (const auto &_value : this->values)
  28. {
  29. if (index == _index)
  30. {
  31. value = _value;
  32. break;
  33. }
  34. ++index;
  35. }
  36. return value;
  37. }
  38. ::std::list<ls::std::io::section_pair_row_value> ls::std::io::SectionPairRowListValue::getList()
  39. {
  40. return this->values;
  41. }
  42. size_t ls::std::io::SectionPairRowListValue::getSize()
  43. {
  44. return this->values.size();
  45. }
  46. ls::std::io::SectionPairRowEnumType ls::std::io::SectionPairRowListValue::getType()
  47. {
  48. return this->type;
  49. }