SectionPairRowListValue.cpp 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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/core/evaluator/NullPointerArgumentEvaluator.hpp>
  12. #include <ls-std/core/evaluator/NullPointerEvaluator.hpp>
  13. #include <ls-std/io/section-pair/evaluator/SectionPairRowValueArgumentEvaluator.hpp>
  14. #include <ls-std/io/section-pair/model/SectionPairRowListValue.hpp>
  15. #include <string>
  16. ls::std::io::SectionPairRowListValue::SectionPairRowListValue() : ls::std::core::Class("SectionPairRowListValue"), ls::std::io::SectionPairRowValue(ls::std::io::SectionPairRowEnumType::SECTION_PAIR_ROW_LIST_VALUE)
  17. {}
  18. ls::std::io::SectionPairRowListValue::~SectionPairRowListValue() = default;
  19. void ls::std::io::SectionPairRowListValue::add(const ls::std::io::section_pair_row_value &_value)
  20. {
  21. ls::std::core::EmptyStringArgumentEvaluator{_value}.evaluate();
  22. ls::std::io::SectionPairRowValueArgumentEvaluator{_value, "section pair row list value \"" + _value + "\" contains invalid characters!"}.evaluate();
  23. this->values.push_back(_value);
  24. }
  25. ls::std::io::section_pair_row_value ls::std::io::SectionPairRowListValue::get(size_t _index)
  26. {
  27. ls::std::core::IndexOutOfBoundsEvaluator(_index, this->values.size()).evaluate();
  28. ls::std::io::section_pair_row_value value{};
  29. size_t index{};
  30. for (const auto &_value : this->values)
  31. {
  32. if (index == _index)
  33. {
  34. value = _value;
  35. break;
  36. }
  37. ++index;
  38. }
  39. return value;
  40. }
  41. ::std::list<ls::std::io::section_pair_row_value> ls::std::io::SectionPairRowListValue::getList()
  42. {
  43. return this->values;
  44. }
  45. size_t ls::std::io::SectionPairRowListValue::getSize()
  46. {
  47. return this->values.size();
  48. }
  49. ls::std::io::SectionPairRowEnumType ls::std::io::SectionPairRowListValue::getType()
  50. {
  51. return this->type;
  52. }
  53. ls::std::core::type::byte_field ls::std::io::SectionPairRowListValue::marshal()
  54. {
  55. ::std::string message = "member \"serializable\" for marshal attempt is null!";
  56. ls::std::core::NullPointerEvaluator{::std::reinterpret_pointer_cast<void>(this->serializable)}.evaluate();
  57. return this->serializable->marshal();
  58. }
  59. void ls::std::io::SectionPairRowListValue::setSerializable(const ::std::shared_ptr<ls::std::core::interface_type::ISerializable> &_serializable)
  60. {
  61. ls::std::core::NullPointerArgumentEvaluator{::std::reinterpret_pointer_cast<void>(_serializable)}.evaluate();
  62. this->serializable = _serializable;
  63. }
  64. void ls::std::io::SectionPairRowListValue::unmarshal(const ls::std::core::type::byte_field &_data)
  65. {
  66. ::std::string message = "member \"serializable\" for unmarshal attempt is null!";
  67. ls::std::core::NullPointerEvaluator{::std::reinterpret_pointer_cast<void>(this->serializable)}.evaluate();
  68. this->serializable->unmarshal(_data);
  69. }