summaryrefslogtreecommitdiff
path: root/src/core/model/Project.cpp
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-02-02 15:11:34 +0100
committerAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-02-02 15:11:34 +0100
commit66e9838c47b58810cb0bb6c67c32fb119eb50797 (patch)
treecb2fff77f6e45e41708e33c8c10c9cb7f206364e /src/core/model/Project.cpp
parent19d1eeba6ad3637e0e108fe177874b5509a7988b (diff)
Importing files works now
Diffstat (limited to 'src/core/model/Project.cpp')
-rw-r--r--src/core/model/Project.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/core/model/Project.cpp b/src/core/model/Project.cpp
index b355969..31530f3 100644
--- a/src/core/model/Project.cpp
+++ b/src/core/model/Project.cpp
@@ -26,7 +26,7 @@
namespace ousia {
Project::Project(Manager &mgr)
- : Node(mgr),
+ : RootNode(mgr),
systemTypesystem(acquire(new SystemTypesystem(mgr))),
documents(this)
{
@@ -41,6 +41,16 @@ void Project::doResolve(ResolutionState &state){
continueResolveComposita(documents, documents.getIndex(), state);
}
+void Project::doReference(Handle<Node> node) {
+ if (node->isa(RttiTypes::Document)) {
+ referenceDocument(node.cast<Document>());
+ }
+}
+
+RttiSet Project::doGetReferenceTypes() const {
+ return RttiSet{&RttiTypes::Document};
+}
+
Rooted<SystemTypesystem> Project::getSystemTypesystem()
{
return systemTypesystem;
@@ -55,7 +65,7 @@ Rooted<Typesystem> Project::createTypesystem(const std::string &name)
Rooted<Document> Project::createDocument(const std::string &name)
{
Rooted<Document> document{new Document(getManager(), name)};
- addDocument(document);
+ referenceDocument(document);
return document;
}
@@ -64,7 +74,7 @@ Rooted<Domain> Project::createDomain(const std::string &name)
return Rooted<Domain>{new Domain(getManager(), systemTypesystem, name)};
}
-void Project::addDocument(Handle<Document> document)
+void Project::referenceDocument(Handle<Document> document)
{
invalidate();
documents.push_back(document);
@@ -74,7 +84,7 @@ const NodeVector<Document> &Project::getDocuments() const { return documents; }
namespace RttiTypes {
const Rtti Project = RttiBuilder<ousia::Project>("Project")
- .parent(&Node)
+ .parent(&RootNode)
.composedOf(&Document)
.composedOf(&SystemTypesystem);
}