DEADSOFTWARE

Remove Domain class - unused
[odcread.git] / textmodel.cc
index 977bd447e35ecca8efd0b71617597f709577771b..c02620c36c9e0dd5c97b31c493f3ebddb827eb0a 100644 (file)
 namespace odc {
 
 const std::string TextModel::TYPENAME("TextModels.Model^");
-const TypeProxy<TextModel> TextModel::PROXY;
+const TypeProxy<TextModel, ContainerModel> TextModel::PROXY;
 
 TextModel::TextModel(INTEGER id) : ContainerModel(id) {}
 
-const std::string &TextModel::getType() {
-       return TYPENAME;
-}
-
-const std::string *TextModel::getSuper() {
-       return &ContainerModel::getType();
-}
-
 const std::string &TextModel::getTypeName() const {
-       return getType();
+       return TYPENAME;
 }
 
 void TextModel::internalize(Reader &reader) {
@@ -33,20 +25,12 @@ void TextModel::internalize(Reader &reader) {
 }
 
 const std::string StdTextModel::TYPENAME("TextModels.StdModel^");
-const TypeProxy<StdTextModel> StdTextModel::PROXY;
+const TypeProxy<StdTextModel, TextModel> StdTextModel::PROXY;
 
 StdTextModel::StdTextModel(INTEGER id) : TextModel(id), d_pieces() {}
 
-const std::string &StdTextModel::getType() {
-       return TYPENAME;
-}
-
-const std::string *StdTextModel::getSuper() {
-       return &TextModel::getType();
-}
-
 const std::string &StdTextModel::getTypeName() const {
-       return getType();
+       return TYPENAME;
 }
 
 /*
@@ -157,12 +141,12 @@ std::string StdTextModel::toString() {
        return sofar + "}";
 }
 
-std::string StdTextModel::toPlainText() {
-       std::string sofar = "";
+void StdTextModel::accept(Visitor &visitor) const {
+       visitor.partStart();
        for (int i = 0; i < d_pieces.size(); ++i) {
-               sofar += d_pieces[i]->toPlainText();
+               d_pieces[i]->accept(visitor);
        }
-       return sofar;
+       visitor.partEnd();
 }
 
 TextPiece::TextPiece(size_t len): d_len(len) {}
@@ -178,12 +162,16 @@ void LongPiece::read(Reader &reader) {
        reader.readLChar(d_buf, d_len);
 }
 
-std::string LongPiece::toString() {
+std::string LongPiece::toString() const {
        return std::string("LongPiece(FIXME)");// + std::wstring((wchar_t*)d_buf) + std::string(")");
 }
 
-std::string LongPiece::toPlainText() {
-       return std::string("FIXME");// + std::wstring((wchar_t*)d_buf) + std::string(")");
+std::wstring LongPiece::getText() const {
+       return std::wstring((wchar_t*)d_buf);
+}
+
+void LongPiece::accept(Visitor &visitor) const {
+       visitor.textLongPiece(this);
 }
 
 ShortPiece::ShortPiece(size_t len): TextPiece(len) {}
@@ -205,12 +193,20 @@ void ShortPiece::read(Reader &reader) {
 //     delete buf;
 }
 
-std::string ShortPiece::toString() {
+std::string ShortPiece::toString() const {
        return std::string("ShortPiece(") + std::string(d_buf) + std::string(")");
 }
 
-std::string ShortPiece::toPlainText() {
-       return std::string(d_buf);
+std::string ShortPiece::getText() const {
+       std::string str(d_buf);
+       for (std::string::iterator it = str.begin(); it < str.end(); ++it) {
+               if (*it == '\r') *it = '\n';
+       }
+       return str;
+}
+
+void ShortPiece::accept(Visitor &visitor) const {
+       visitor.textShortPiece(this);
 }
 
 ViewPiece::ViewPiece(Store *view): TextPiece(0), d_view(view) {}
@@ -219,12 +215,12 @@ void ViewPiece::read(Reader &reader) {
        reader.readByte();
 }
 
-std::string ViewPiece::toString() {
+std::string ViewPiece::toString() const {
        return std::string("ViewPiece { ") + d_view->toString() + " }";
 }
 
-std::string ViewPiece::toPlainText() {
-       return d_view->toPlainText();
+void ViewPiece::accept(Visitor &visitor) const {
+       return d_view->accept(visitor);
 }
 
 } // namespace odc