summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-04-14 00:23:09 +0200
committerAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2016-04-25 22:24:18 +0200
commit0f345bc54c4e048d25f0dc49bf1427d8e30c3d01 (patch)
treee0efb9efef88ba20a1221bd4357289002f61aeb6 /src
parent439a3c0bd9e2c81082de2cdf0ff8352828bd5364 (diff)
Small changes to the ReferenceType class, allows them to be used -- however resolution of referenced objects is still missing.
Diffstat (limited to 'src')
-rw-r--r--src/core/model/Typesystem.cpp9
-rw-r--r--src/core/model/Typesystem.hpp2
2 files changed, 9 insertions, 2 deletions
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<const Type> type) const
@@ -676,6 +681,8 @@ bool ReferenceType::doCheckIsa(Handle<const Type> type) const
return type->isa(&RttiTypes::ReferenceType);
}
+Variant ReferenceType::create() const { return Variant{}; }
+
Handle<Descriptor> ReferenceType::getDescriptor() { return descriptor; }
void ReferenceType::setDescriptor(Handle<Descriptor> 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