diff options
Diffstat (limited to 'src/core/model/Ontology.cpp')
-rw-r--r-- | src/core/model/Ontology.cpp | 15 |
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; |