summaryrefslogtreecommitdiff
path: root/src/core/model/Ontology.cpp
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-04-15 20:40:25 +0200
committerAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2016-04-25 22:24:19 +0200
commit8810fc675a07e0ed62bcc391bb0464bc04dd3e37 (patch)
tree16a8cace91fc65bc7d1df2802d2e456f60786c52 /src/core/model/Ontology.cpp
parent2a5b3632fb49452adb6ecedb9c678909341ef662 (diff)
Implement generic "inheritsFrom" method for Descriptor class
Diffstat (limited to 'src/core/model/Ontology.cpp')
-rw-r--r--src/core/model/Ontology.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/core/model/Ontology.cpp b/src/core/model/Ontology.cpp
index 89710d3..fa0cd1e 100644
--- a/src/core/model/Ontology.cpp
+++ b/src/core/model/Ontology.cpp
@@ -571,6 +571,16 @@ bool Descriptor::doValidate(Logger &logger) const
return valid & continueValidationCheckDuplicates(fds, logger);
}
+bool Descriptor::doCheckInheritsFrom(Handle<Descriptor> c) const
+{
+ return false;
+}
+
+bool Descriptor::inheritsFrom(Handle<Descriptor> c) const
+{
+ return (c == this) || ((c != nullptr) && (c->type() == type()) && doCheckInheritsFrom(c));
+}
+
NodeVector<Node> Descriptor::pathTo(Handle<StructuredClass> target,
Logger &logger) const
{
@@ -813,6 +823,11 @@ StructuredClass::StructuredClass(Manager &mgr, std::string name,
}
}
+bool StructuredClass::doCheckInheritsFrom(Handle<Descriptor> c) const
+{
+ return isSubclassOf(c.cast<StructuredClass>());
+}
+
bool StructuredClass::doValidate(Logger &logger) const
{
bool valid = true;