summaryrefslogtreecommitdiff
path: root/src/core/model
diff options
context:
space:
mode:
authorBenjamin Paassen <bpaassen@techfak.uni-bielefeld.de>2015-02-08 21:40:37 +0100
committerBenjamin Paassen <bpaassen@techfak.uni-bielefeld.de>2015-02-08 21:40:37 +0100
commit99d04472eb4fdbba35f6ab8c72a2efa6af40fa72 (patch)
tree53d2ba473d696bf62bd2fc371b4c5e1aa60cfd54 /src/core/model
parent9ef316ed4ea8542973d272fa9c7b4c6804b28144 (diff)
added getFieldDescriptor method.
Diffstat (limited to 'src/core/model')
-rw-r--r--src/core/model/Domain.cpp11
-rw-r--r--src/core/model/Domain.hpp10
2 files changed, 21 insertions, 0 deletions
diff --git a/src/core/model/Domain.cpp b/src/core/model/Domain.cpp
index 20a9d42..806b9b8 100644
--- a/src/core/model/Domain.cpp
+++ b/src/core/model/Domain.cpp
@@ -265,6 +265,17 @@ ssize_t Descriptor::getFieldDescriptorIndex(Handle<FieldDescriptor> fd) const
return -1;
}
+Rooted<FieldDescriptor> Descriptor::getFieldDescriptor(
+ const std::string &name) const
+{
+ for (auto &fd : getFieldDescriptors()) {
+ if (fd->getName() == name) {
+ return fd;
+ }
+ }
+ return nullptr;
+}
+
void Descriptor::addFieldDescriptor(Handle<FieldDescriptor> fd)
{
// only add it if we need to.
diff --git a/src/core/model/Domain.hpp b/src/core/model/Domain.hpp
index db3b9e6..24199b1 100644
--- a/src/core/model/Domain.hpp
+++ b/src/core/model/Domain.hpp
@@ -515,6 +515,16 @@ public:
* FieldDescriptor is not registered at this Descriptor.
*/
ssize_t getFieldDescriptorIndex(Handle<FieldDescriptor> fd) const;
+ /**
+ * Returns the FieldDescriptor with the given name.
+ *
+ * @param name the name of a FieldDescriptor.
+
+ * @return the FieldDescriptor with the given name or a nullptr if no
+ * such FieldDescriptor was found.
+ */
+ Rooted<FieldDescriptor> getFieldDescriptor(
+ const std::string &name = DEFAULT_FIELD_NAME) const;
/**
* This returns true if this Descriptor has a FieldDescriptor with the