X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=textmodel.h;h=abfe13d24f6c6ad38b2dae6a333c05d88aa076c8;hb=e2fd5debfd8b94a6ec77a514962851594f0690f0;hp=38eb7c55b73d0546c5884263a98e2ec01d53b474;hpb=cf035fa1849a5e65c0d636ce2718bc2c85994680;p=odcread.git diff --git a/textmodel.h b/textmodel.h index 38eb7c5..abfe13d 100644 --- a/textmodel.h +++ b/textmodel.h @@ -9,14 +9,13 @@ namespace odc { class TextModel : public ContainerModel { private: - static const std::string TYPENAME; - static const TypeProxy PROXY; + static const TypeProxy PROXY; public: - TextModel(INTEGER id); - static const std::string &getType(); - static const std::string *getSuper(); + static const std::string TYPENAME; virtual const std::string &getTypeName() const; + + TextModel(INTEGER id); virtual void internalize(Reader &reader); }; @@ -25,8 +24,8 @@ namespace odc { const size_t d_len; TextPiece(size_t len); virtual void read(Reader &reader) = 0; - virtual std::string toString() = 0; - virtual std::string toPlainText() = 0; + virtual std::string toString() const = 0; + virtual void accept(Visitor &visitor) const = 0; }; class LongPiece : public TextPiece { @@ -36,8 +35,9 @@ namespace odc { LongPiece(size_t len); ~LongPiece(); virtual void read(Reader &reader); - virtual std::string toString(); - virtual std::string toPlainText(); + virtual std::string toString() const; + virtual std::wstring getText() const; + virtual void accept(Visitor &visitor) const; }; class ShortPiece : public TextPiece { @@ -47,8 +47,9 @@ namespace odc { ShortPiece(size_t len); ~ShortPiece(); virtual void read(Reader &reader); - virtual std::string toString(); - virtual std::string toPlainText(); + virtual std::string toString() const; + virtual std::string getText() const; + virtual void accept(Visitor &visitor) const; }; class ViewPiece : public TextPiece { @@ -56,25 +57,24 @@ namespace odc { public: ViewPiece(Store *view); virtual void read(Reader &reader); - virtual std::string toString(); - virtual std::string toPlainText(); + virtual std::string toString() const; + virtual void accept(Visitor &visitor) const; }; class StdTextModel : public TextModel { private: - static const std::string TYPENAME; - static const TypeProxy PROXY; + static const TypeProxy PROXY; std::vector d_pieces; public: - StdTextModel(INTEGER id); - static const std::string &getType(); - static const std::string *getSuper(); + static const std::string TYPENAME; virtual const std::string &getTypeName() const; + + StdTextModel(INTEGER id); virtual void internalize(Reader &reader); virtual std::string toString(); - virtual std::string toPlainText(); + virtual void accept(Visitor &visitor) const; }; } // namespace odc