diff --git a/store.cc b/store.cc
index 82e20e67c7c1e0dac7cb4a1358706e811057af19..4bbabf83591858e3106d1a1fd5cd4767240d3362 100644 (file)
--- a/store.cc
+++ b/store.cc
#include <store.h>
+#include <reader.h>
+#include <visitor.h>
+
+#include <iostream>
+
namespace odc {
return join(begin(), end(), std::string("->"));
}
+const std::string Store::TYPENAME("Stores.Store^");
+const TypeProxy<Store> Store::PROXY;
+
Store::Store(INTEGER id): d_id(id) {}
INTEGER Store::getId() {
return d_id;
}
-Domain* Store::getDomain() {
+const std::string &Store::getType() {
+ return Store::TYPENAME;
+}
+
+const std::string *Store::getSuper() {
return 0;
}
+const std::string &Store::getTypeName() const {
+ return Store::getType();
+}
+
+void Store::getTypePath(TypePath *out) const {
+ return calcTypePath(out, getTypeName());
+}
+
+void Store::calcTypePath(TypePath *path, const std::string &name) const {
+ const std::string *super = TypeRegister::getInstance().get(name)->getSuper();
+ if (super != 0) {
+ calcTypePath(path, *super);
+ }
+ path->push_back(name);
+}
+
+void Store::internalize(Reader &reader) {
+ reader.readVersion(0, 0);
+}
+
+std::string Store::toString() {
+ return getTypeName();
+}
+
+void Store::accept(Visitor &visitor) const {}
+
+const std::string Elem::TYPENAME("Stores.Elem^");
+const TypeProxy<Elem> Elem::PROXY;
+
+Elem::Elem(INTEGER id) : Store(id) {}
+
+const std::string &Elem::getType() {
+ return TYPENAME;
+}
+
+const std::string *Elem::getSuper() {
+ return &Store::getType();
+}
+
+const std::string &Elem::getTypeName() const {
+ return getType();
}
+
+void Elem::internalize(Reader &reader) {
+ Store::internalize(reader);
+ if (reader.isCancelled()) return;
+ reader.readVersion(0, 0);
+}
+
+const std::string Model::TYPENAME("Models.Model^");
+const TypeProxy<Model> Model::PROXY;
+
+Model::Model(INTEGER id) : Elem(id) {}
+
+const std::string &Model::getType() {
+ return TYPENAME;
+}
+
+const std::string *Model::getSuper() {
+ return &Elem::getType();
+}
+
+const std::string &Model::getTypeName() const {
+ return getType();
+}
+
+void Model::internalize(Reader &reader) {
+ Elem::internalize(reader);
+ if (reader.isCancelled()) return;
+ reader.readVersion(0, 0);
+}
+
+const std::string ContainerModel::TYPENAME("Containers.Model^");
+const TypeProxy<ContainerModel> ContainerModel::PROXY;
+
+ContainerModel::ContainerModel(INTEGER id) : Model(id) {}
+
+const std::string &ContainerModel::getType() {
+ return TYPENAME;
+}
+
+const std::string *ContainerModel::getSuper() {
+ return &Model::getType();
+}
+
+const std::string &ContainerModel::getTypeName() const {
+ return getType();
+}
+
+void ContainerModel::internalize(Reader &reader) {
+ Model::internalize(reader);
+ if (reader.isCancelled()) return;
+ reader.readVersion(0, 0);
+}
+
+} // namespace odc