From 8810fc675a07e0ed62bcc391bb0464bc04dd3e37 Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Wed, 15 Apr 2015 20:40:25 +0200 Subject: Implement generic "inheritsFrom" method for Descriptor class --- src/core/model/Ontology.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/core/model/Ontology.cpp') 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 c) const +{ + return false; +} + +bool Descriptor::inheritsFrom(Handle c) const +{ + return (c == this) || ((c != nullptr) && (c->type() == type()) && doCheckInheritsFrom(c)); +} + NodeVector Descriptor::pathTo(Handle target, Logger &logger) const { @@ -813,6 +823,11 @@ StructuredClass::StructuredClass(Manager &mgr, std::string name, } } +bool StructuredClass::doCheckInheritsFrom(Handle c) const +{ + return isSubclassOf(c.cast()); +} + bool StructuredClass::doValidate(Logger &logger) const { bool valid = true; -- cgit v1.2.3