From 0f345bc54c4e048d25f0dc49bf1427d8e30c3d01 Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Tue, 14 Apr 2015 00:23:09 +0200 Subject: Small changes to the ReferenceType class, allows them to be used -- however resolution of referenced objects is still missing. --- src/core/model/Typesystem.cpp | 9 ++++++++- src/core/model/Typesystem.hpp | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'src/core') diff --git a/src/core/model/Typesystem.cpp b/src/core/model/Typesystem.cpp index 6ae92b4..17d81dd 100644 --- a/src/core/model/Typesystem.cpp +++ b/src/core/model/Typesystem.cpp @@ -666,8 +666,13 @@ bool ReferenceType::doBuild(Variant &data, Logger &logger, throw LoggableException("Reference must be a valid identifier", data); } + data = Variant{}; + return true; } - return false; + + // Throw an exception if no valid data is given + throw LoggableException( + "Expected object or string for constructing a reference", data); } bool ReferenceType::doCheckIsa(Handle type) const @@ -676,6 +681,8 @@ bool ReferenceType::doCheckIsa(Handle type) const return type->isa(&RttiTypes::ReferenceType); } +Variant ReferenceType::create() const { return Variant{}; } + Handle ReferenceType::getDescriptor() { return descriptor; } void ReferenceType::setDescriptor(Handle descriptor) diff --git a/src/core/model/Typesystem.hpp b/src/core/model/Typesystem.hpp index ce3cee0..3d869d9 100644 --- a/src/core/model/Typesystem.hpp +++ b/src/core/model/Typesystem.hpp @@ -1034,7 +1034,7 @@ public: * * @return a null reference. */ - Variant create() const override { return Variant{}; } + Variant create() const override; /** * Returns the descriptor containing the ontological type of which an -- cgit v1.2.3