diff options
author | Benjamin Paassen <bpaassen@techfak.uni-bielefeld.de> | 2015-02-08 21:40:37 +0100 |
---|---|---|
committer | Benjamin Paassen <bpaassen@techfak.uni-bielefeld.de> | 2015-02-08 21:40:37 +0100 |
commit | 99d04472eb4fdbba35f6ab8c72a2efa6af40fa72 (patch) | |
tree | 53d2ba473d696bf62bd2fc371b4c5e1aa60cfd54 /src/core/model | |
parent | 9ef316ed4ea8542973d272fa9c7b4c6804b28144 (diff) |
added getFieldDescriptor method.
Diffstat (limited to 'src/core/model')
-rw-r--r-- | src/core/model/Domain.cpp | 11 | ||||
-rw-r--r-- | src/core/model/Domain.hpp | 10 |
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 |