Add modules
Change-Id: Idafb0f57dd032d4f88658de15d293bdefac0567f
diff --git a/src/static_schema.hpp b/src/static_schema.hpp
index bab8bde..1a84e23 100644
--- a/src/static_schema.hpp
+++ b/src/static_schema.hpp
@@ -19,28 +19,33 @@
/*! \class StaticSchema
* \brief Static schema, used mainly for testing
* */
+using ModuleNodePair = std::pair<boost::optional<std::string>, std::string>;
class StaticSchema : public Schema {
public:
StaticSchema();
- bool isContainer(const path_& location, const std::string& name) const override;
- bool isLeaf(const path_& location, const std::string& name) const override;
- bool isList(const path_& location, const std::string& name) const override;
- bool isPresenceContainer(const path_& location, const std::string& name) const override;
- bool leafEnumHasValue(const path_& location, const std::string& name, const std::string& value) const override;
- bool listHasKey(const path_& location, const std::string& name, const std::string& key) const override;
- bool nodeExists(const std::string& location, const std::string& name) const override;
- const std::set<std::string>& listKeys(const path_& location, const std::string& name) const override;
- yang::LeafDataTypes leafType(const path_& location, const std::string& name) const override;
+ bool isContainer(const path_& location, const ModuleNodePair& node) const override;
+ bool isModule(const path_& location, const std::string& name) const override;
+ bool isLeaf(const path_& location, const ModuleNodePair& node) const override;
+ bool isList(const path_& location, const ModuleNodePair& node) const override;
+ bool isPresenceContainer(const path_& location, const ModuleNodePair& node) const override;
+ bool leafEnumHasValue(const path_& location, const ModuleNodePair& node, const std::string& value) const override;
+ bool listHasKey(const path_& location, const ModuleNodePair& node, const std::string& key) const override;
+ bool nodeExists(const std::string& location, const std::string& node) const override;
+ const std::set<std::string>& listKeys(const path_& location, const ModuleNodePair& node) const override;
+ yang::LeafDataTypes leafType(const path_& location, const ModuleNodePair& node) const override;
+ std::set<std::string> childNodes(const path_& path) const override;
void addContainer(const std::string& location, const std::string& name, yang::ContainerTraits isPresence = yang::ContainerTraits::None);
void addLeaf(const std::string& location, const std::string& name, const yang::LeafDataTypes& type);
void addLeafEnum(const std::string& location, const std::string& name, std::set<std::string> enumValues);
void addList(const std::string& location, const std::string& name, const std::set<std::string>& keys);
+ void addModule(const std::string& name);
private:
const std::unordered_map<std::string, NodeType>& children(const std::string& name) const;
std::unordered_map<std::string, std::unordered_map<std::string, NodeType>> m_nodes;
+ std::set<std::string> m_modules;
};