#include <string>
#include <vector>
+#include <msp/datafile/objectloader.h>
#include <msp/strings/lexicalcast.h>
namespace R2C2 {
class ArticleNumber
{
-private:
- struct Part
+public:
+ class Loader: public Msp::DataFile::ObjectLoader<ArticleNumber>
{
- unsigned number;
- char letter;
-
- bool operator<(const Part &) const;
+ public:
+ Loader(ArticleNumber &);
};
- std::vector<Part> parts;
+private:
+ std::string vendor;
+ std::string article;
+ std::string part;
public:
ArticleNumber() { }
- ArticleNumber(unsigned);
ArticleNumber(const std::string &);
+ ArticleNumber(const std::string &, const std::string &, const std::string & = std::string());
+ const std::string &get_vendor() const { return vendor; }
+ const std::string &get_article() const { return article; }
+ const std::string &get_part() const { return part; }
std::string str() const;
-
- bool operator<(const ArticleNumber &) const;
};
-void operator>>(const Msp::LexicalConverter &, ArticleNumber &);
void operator<<(Msp::LexicalConverter &, const ArticleNumber &);
} // namespace R2C2