diff options
Diffstat (limited to 'src/core/model/Document.cpp')
-rw-r--r-- | src/core/model/Document.cpp | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/src/core/model/Document.cpp b/src/core/model/Document.cpp index c653fe3..945fb3e 100644 --- a/src/core/model/Document.cpp +++ b/src/core/model/Document.cpp @@ -93,16 +93,14 @@ static Rooted<StructuredClass> resolveDescriptor( // iterate over all domains. for (auto &d : domains) { // use the actual resolve method. - std::vector<Rooted<Managed>> resolved = d->resolve(className); + std::vector<ResolutionResult> resolved = d->resolve(className, typeOf<StructuredClass>()); // if we don't find anything, continue. if (resolved.size() == 0) { continue; } // Otherwise take the first valid result. for (auto &r : resolved) { - if (r->isa(typeOf<StructuredClass>())) { - return r.cast<StructuredClass>(); - } + return r.node.cast<StructuredClass>(); } } return {nullptr}; @@ -239,19 +237,21 @@ Rooted<AnnotationEntity> AnnotationEntity::buildEntity( } namespace RttiTypes { -const Rtti<model::Document> Document{ - "Document", {&Node}, {&AnnotationEntity, &StructuredEntity}}; -const Rtti<model::DocumentEntity> DocumentEntity{"DocumentEntity", {&Node}}; -const Rtti<model::AnnotationEntity> AnnotationEntity{ - "AnnotationEntity", {&DocumentEntity}, {&StructuredEntity}}; -const Rtti<model::StructuredEntity> StructuredEntity{ - "StructuredEntity", - {&DocumentEntity}, - {&StructuredEntity, &Anchor, &DocumentPrimitive}}; -const Rtti<model::DocumentPrimitive> DocumentPrimitive{"DocumentPrimitive", - {&StructuredEntity}}; -const Rtti<model::AnnotationEntity::Anchor> Anchor{"Anchor", - {&StructuredEntity}}; +const Rtti<model::DocumentEntity> DocumentEntity = + RttiBuilder("DocumentEntity").parent(&Node); +const Rtti<model::Document> Document = + RttiBuilder("Document").parent(&Node).composedOf( + {&AnnotationEntity, &StructuredEntity}); +const Rtti<model::AnnotationEntity> AnnotationEntity = + RttiBuilder("AnnotationEntity").parent(&DocumentEntity).composedOf( + &StructuredEntity); +const Rtti<model::StructuredEntity> StructuredEntity = + RttiBuilder("StructuredEntity").parent(&DocumentEntity).composedOf( + {&StructuredEntity, &Anchor, &DocumentPrimitive}); +const Rtti<model::DocumentPrimitive> DocumentPrimitive = + RttiBuilder("DocumentPrimitive").parent(&StructuredEntity); +const Rtti<model::AnnotationEntity::Anchor> Anchor = + RttiBuilder("Anchor").parent(&StructuredEntity); } } |