diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-01-14 22:04:22 +0100 |
---|---|---|
committer | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-01-14 22:04:22 +0100 |
commit | e72f5969db10d88818c2814c3929ddb67ddffc76 (patch) | |
tree | 02401ff0f79be39c0b55336f05da1b970022c57c /src/core/model/Node.cpp | |
parent | a9c258d1dabcc1560e4a0a64621b78b5eee17f05 (diff) |
Registered properties for the Node class
Diffstat (limited to 'src/core/model/Node.cpp')
-rw-r--r-- | src/core/model/Node.cpp | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/src/core/model/Node.cpp b/src/core/model/Node.cpp index bac420b..7f684ce 100644 --- a/src/core/model/Node.cpp +++ b/src/core/model/Node.cpp @@ -21,6 +21,7 @@ #include <core/common/Exceptions.hpp> #include <core/common/Rtti.hpp> +#include <core/common/TypedRttiBuilder.hpp> #include "Node.hpp" @@ -351,8 +352,29 @@ std::vector<ResolutionResult> Node::resolve(const std::string &name, return resolve(std::vector<std::string>{name}, type); } -/* RTTI type registrations */ +/* Reflection Methods */ + +static Variant getNodeName(const Node *obj) +{ + return Variant::fromString(obj->getName()); +} + +static void setNodeName(const Variant &value, Node *obj) +{ + obj->setName(value.asString()); +} + +static Variant getNodeParent(const Node *obj) +{ + return Variant::fromObject(obj->getParent()); +} -const Rtti<Node> RttiTypes::Node{"Node"}; +/* RTTI type registrations */ +namespace RttiTypes { +const Rtti<ousia::Node> Node = + TypedRttiBuilder<ousia::Node>("Node") + .property("name", {RttiTypes::String, getNodeName, setNodeName}) + .property("parent", {Node, getNodeParent}); +} } |