diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-02-02 15:11:34 +0100 |
---|---|---|
committer | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-02-02 15:11:34 +0100 |
commit | 66e9838c47b58810cb0bb6c67c32fb119eb50797 (patch) | |
tree | cb2fff77f6e45e41708e33c8c10c9cb7f206364e /src/core/model/Project.cpp | |
parent | 19d1eeba6ad3637e0e108fe177874b5509a7988b (diff) |
Importing files works now
Diffstat (limited to 'src/core/model/Project.cpp')
-rw-r--r-- | src/core/model/Project.cpp | 18 |
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); } |