From 4b5f49447e1583756c6f6bb15d7bc643bb7adda3 Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Mon, 5 Jan 2015 13:51:46 +0100 Subject: Added composition types --- src/core/model/Document.cpp | 32 +++++++++++++++++++------------- src/core/model/Document.hpp | 9 +++++++++ 2 files changed, 28 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/core/model/Document.cpp b/src/core/model/Document.cpp index e5d0755..c09532c 100644 --- a/src/core/model/Document.cpp +++ b/src/core/model/Document.cpp @@ -70,7 +70,7 @@ NodeVector &DocumentEntity::getField( NodeVector &DocumentEntity::getField( Handle fieldDescriptor) { - if(fieldDescriptor.isNull()){ + if (fieldDescriptor.isNull()) { throw OusiaException("The given FieldDescriptor handle is null!"); } const NodeVector &fds = descriptor->getFieldDescriptors(); @@ -157,7 +157,7 @@ Rooted StructuredEntity::buildEntity( return {nullptr}; } // append the new entity to the right field. - NodeVector& field = parent->getField(fieldName); + NodeVector &field = parent->getField(fieldName); field.push_back(entity); // and return it. @@ -180,7 +180,7 @@ Rooted DocumentPrimitive::buildEntity( return {nullptr}; } // append the new entity to the right field. - NodeVector& field = parent->getField(fieldName); + NodeVector &field = parent->getField(fieldName); field.push_back(entity); // and return it. @@ -188,17 +188,23 @@ Rooted DocumentPrimitive::buildEntity( } /* Type registrations */ +} -const Rtti Document_Rtti{"Document"}; -const Rtti DocumentEntity_Rtti{"DocumentEntity"}; -const Rtti AnnotationEntity_Rtti{"AnnotationEntity", - {&DocumentEntity_Rtti}}; -const Rtti StructuredEntity_Rtti{"StructuredEntity", - {&DocumentEntity_Rtti}}; -const Rtti DocumentPrimitive_Rtti{"DocumentPrimitive", - {&StructuredEntity_Rtti}}; -const Rtti Anchor_Rtti{"Anchor", - {&StructuredEntity_Rtti}}; +namespace RttiTypes { +const Rtti Document{"Document", + std::unordered_set{}, + {&AnnotationEntity, &StructuredEntity}}; +const Rtti DocumentEntity{"DocumentEntity"}; +const Rtti AnnotationEntity{ + "AnnotationEntity", {&DocumentEntity}, {&StructuredEntity}}; +const Rtti StructuredEntity{ + "StructuredEntity", + {&DocumentEntity}, + {&StructuredEntity, &Anchor, &DocumentPrimitive}}; +const Rtti DocumentPrimitive{"DocumentPrimitive", + {&StructuredEntity}}; +const Rtti Anchor{"Anchor", + {&StructuredEntity}}; } } diff --git a/src/core/model/Document.hpp b/src/core/model/Document.hpp index fabdcaf..7523962 100644 --- a/src/core/model/Document.hpp +++ b/src/core/model/Document.hpp @@ -395,6 +395,15 @@ public: Rooted getRoot() const { return root; } }; } + +namespace RttiTypes { +extern const Rtti Document; +extern const Rtti DocumentEntity; +extern const Rtti AnnotationEntity; +extern const Rtti StructuredEntity; +extern const Rtti DocumentPrimitive; +extern const Rtti Anchor; +} } #endif /* _OUSIA_MODEL_DOCUMENT_HPP_ */ -- cgit v1.2.3