#include "WarenStorage.h" WarenStorage::WarenStorage() { } void WarenStorage::addWarenListToSum(std::vector* sumList, std::vector itemList) const { //reference ohne const möglich oder ist hier ein pointer notwendig?? for(Ware ware : itemList) { sumList->push_back((Ware) ware); //static_cast<> oder ganz weg } } std::vector WarenStorage::getAllWaren() const { std::vector w; addWarenListToSum(&w, warenList); addWarenListToSum(&w, coolingWarenList); addWarenListToSum(&w, largeWarenList); return w; } std::vector WarenStorage::getWarenList() { return warenList; } void WarenStorage::setWarenList(const std::vector waren) { this->warenList = waren; } std::vector WarenStorage::getCoolingWarenList() { return coolingWarenList; } void WarenStorage::setCoolingWarenList(const std::vector coolingWaren) { this->coolingWarenList = coolingWaren; } std::vector WarenStorage::getLargeWarenList() { return largeWarenList; } void WarenStorage::setLargeWarenList(const std::vector largeWaren) { this->largeWarenList = largeWaren; } void WarenStorage::addWareAndGenerateId(Ware ware) { ware.generateId(); switch(ware.getType()) { case Ware::WareType::DefaultWare: warenList.push_back(ware); break; case Ware::WareType::CoolingWare: coolingWarenList.push_back(ware); break; case Ware::WareType::LargeWare: largeWarenList.push_back(ware); break; } } void WarenStorage::removeWare(const std::string& name) { std::vector allWaren = getAllWaren(); for(size_t i = 0; i < allWaren.size(); i++) { if(allWaren[i].getName() == name) { switch(allWaren[i].getType()) { case Ware::WareType::DefaultWare: warenList.erase( warenList.begin() + i ); break; case Ware::WareType::CoolingWare: coolingWarenList.erase( coolingWarenList.begin() + i ); break; case Ware::WareType::LargeWare: largeWarenList.erase( largeWarenList.begin() + i ); break; } break; //remove only one item } } }