From 66e9838c47b58810cb0bb6c67c32fb119eb50797 Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Mon, 2 Feb 2015 15:11:34 +0100 Subject: Importing files works now --- src/core/model/Project.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/core/model/Project.cpp') 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) { + if (node->isa(RttiTypes::Document)) { + referenceDocument(node.cast()); + } +} + +RttiSet Project::doGetReferenceTypes() const { + return RttiSet{&RttiTypes::Document}; +} + Rooted Project::getSystemTypesystem() { return systemTypesystem; @@ -55,7 +65,7 @@ Rooted Project::createTypesystem(const std::string &name) Rooted Project::createDocument(const std::string &name) { Rooted document{new Document(getManager(), name)}; - addDocument(document); + referenceDocument(document); return document; } @@ -64,7 +74,7 @@ Rooted Project::createDomain(const std::string &name) return Rooted{new Domain(getManager(), systemTypesystem, name)}; } -void Project::addDocument(Handle document) +void Project::referenceDocument(Handle document) { invalidate(); documents.push_back(document); @@ -74,7 +84,7 @@ const NodeVector &Project::getDocuments() const { return documents; } namespace RttiTypes { const Rtti Project = RttiBuilder("Project") - .parent(&Node) + .parent(&RootNode) .composedOf(&Document) .composedOf(&SystemTypesystem); } -- cgit v1.2.3