5 #include <typeregister.h>
10 class TextModel
: public ContainerModel
{
12 static const TypeProxy
<TextModel
, ContainerModel
> PROXY
;
15 static const std::string TYPENAME
;
16 virtual const std::string
&getTypeName() const;
18 TextModel(INTEGER id
);
19 virtual void internalize(Reader
&reader
);
25 TextPiece(size_t len
);
26 virtual void read(Reader
&reader
) = 0;
27 virtual std::string
toString() const = 0;
28 virtual void accept(Visitor
&visitor
) const = 0;
31 class LongPiece
: public TextPiece
{
35 LongPiece(size_t len
);
37 virtual void read(Reader
&reader
);
38 virtual std::string
toString() const;
39 virtual std::wstring
getText() const;
40 virtual void accept(Visitor
&visitor
) const;
43 class ShortPiece
: public TextPiece
{
47 ShortPiece(size_t len
);
49 virtual void read(Reader
&reader
);
50 virtual std::string
toString() const;
51 virtual std::string
getText() const;
52 virtual void accept(Visitor
&visitor
) const;
55 class ViewPiece
: public TextPiece
{
58 ViewPiece(Store
*view
);
59 virtual void read(Reader
&reader
);
60 virtual std::string
toString() const;
61 virtual void accept(Visitor
&visitor
) const;
64 class StdTextModel
: public TextModel
{
66 static const TypeProxy
<StdTextModel
, TextModel
> PROXY
;
67 std::vector
<TextPiece
*> d_pieces
;
70 static const std::string TYPENAME
;
71 virtual const std::string
&getTypeName() const;
73 StdTextModel(INTEGER id
);
74 virtual void internalize(Reader
&reader
);
76 virtual std::string
toString();
77 virtual void accept(Visitor
&visitor
) const;
82 #endif // _TEXTMODEL_H_