summaryrefslogtreecommitdiff
path: root/src/core/model/Ontology.cpp
diff options
context:
space:
mode:
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;