From d99095f4a181357bf0c6d10846351eb0b58b1ccf Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Thu, 6 Mar 2014 00:11:17 +0000 Subject: started to implement rudimentary XML reader (implemented expectOneOf function), changed some conventions in the used files (namespaces, include guards), moved anchor class from domain to document package, removed everything that does not work now from the CMakeLists.txt git-svn-id: file:///var/local/svn/basicwriter@24 daaaf23c-2e50-4459-9457-1e69db5a47bf --- src/model/GraphNode.cpp | 20 ++++++-------------- src/model/GraphNode.hpp | 34 ++++++++++++++++++++++------------ src/model/document/Anchor.cpp | 28 ++++++++++++++++++++++++++++ src/model/document/Anchor.hpp | 36 ++++++++++++++++++++++++++++++++++++ src/model/domain/Anchor.cpp | 28 ---------------------------- src/model/domain/Anchor.hpp | 36 ------------------------------------ src/model/domain/ClassSet.hpp | 33 +++++++++++++++++++++++++++++++++ src/model/domain/Domain.hpp | 41 +++++++++++++++++++++++++---------------- 8 files changed, 150 insertions(+), 106 deletions(-) create mode 100644 src/model/document/Anchor.cpp create mode 100644 src/model/document/Anchor.hpp delete mode 100644 src/model/domain/Anchor.cpp delete mode 100644 src/model/domain/Anchor.hpp create mode 100644 src/model/domain/ClassSet.hpp (limited to 'src/model') diff --git a/src/model/GraphNode.cpp b/src/model/GraphNode.cpp index affc3af..bfb8e63 100644 --- a/src/model/GraphNode.cpp +++ b/src/model/GraphNode.cpp @@ -22,21 +22,11 @@ #include namespace ousia { +namespace model { -GraphNode::GraphNode() : - parent(nullptr) -{ - // Do nothing here -} - -GraphNode::GraphNode(std::shared_ptr parent) : - parent(parent) -{ - // Do nothing here -} - -GraphNode::GraphNode(const std::string &name, std::shared_ptr parent) : - name(name), parent(parent) +GraphNode::GraphNode(GraphNodeType type, std::shared_ptr parent, + const std::string &name) : + type(type), parent(parent), name(name) { // Do nothing here } @@ -52,3 +42,5 @@ const std::string GraphNode::getFullyQualifiedName() } } +} + diff --git a/src/model/GraphNode.hpp b/src/model/GraphNode.hpp index 39770dd..8ce1a39 100644 --- a/src/model/GraphNode.hpp +++ b/src/model/GraphNode.hpp @@ -16,34 +16,39 @@ along with this program. If not, see . */ -#ifndef _GRAPH_NODE_HPP_ -#define _GRAPH_NODE_HPP_ +#ifndef _OUSIA_MODEL_GRAPH_NODE_HPP_ +#define _OUSIA_MODEL_GRAPH_NODE_HPP_ #include #include namespace ousia { +namespace model { + +enum class GraphNodeType { + None, Domain, Class, Annotation, Structure, ClassCategory, + AnnotationCategory +}; class GraphNode { private: - std::string name; + GraphNodeType type; std::shared_ptr parent; + std::string name; -public: - GraphNode(); - - GraphNode(std::shared_ptr parent); +protected: + GraphNode(GraphNodeType type, std::shared_ptr parent = nullptr, + const std::string &name = ""); - GraphNode(const std::string &name, std::shared_ptr parent = nullptr); +public: + const std::string getFullyQualifiedName(); const std::string& getName() { return name; } - const std::string getFullyQualifiedName(); - void setName(const std::string &name) { this->name = name; @@ -51,7 +56,7 @@ public: std::shared_ptr getParent() { - return std::shared_ptr(parent); + return parent; } void setParent(std::shared_ptr parent) @@ -59,10 +64,15 @@ public: this->parent = parent; } + GraphNodeType getType() + { + return type; + } }; +} } -#endif /* _GRAPH_NODE_HPP_ */ +#endif /* _OUSIA_MODEL_GRAPH_NODE_HPP_ */ diff --git a/src/model/document/Anchor.cpp b/src/model/document/Anchor.cpp new file mode 100644 index 0000000..e153161 --- /dev/null +++ b/src/model/document/Anchor.cpp @@ -0,0 +1,28 @@ +/* + Ousía + Copyright (C) 2014 Benjamin Paaßen, Andreas Stöckel + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include + +namespace ousia { +namespace domain { + +//This class is fully specified by its header. + +} +} + diff --git a/src/model/document/Anchor.hpp b/src/model/document/Anchor.hpp new file mode 100644 index 0000000..66ff8eb --- /dev/null +++ b/src/model/document/Anchor.hpp @@ -0,0 +1,36 @@ +/* + Ousía + Copyright (C) 2014 Benjamin Paaßen, Andreas Stöckel + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef _ANCHOR_HPP_ +#define _ANCHOR_HPP_ + +#include + +namespace ousia { +namespace domain { + +class Anchor : public GraphNode { + +public: + using GraphNode::GraphNode; + +}; +} +} + +#endif /* _ANCHOR_HPP_ */ diff --git a/src/model/domain/Anchor.cpp b/src/model/domain/Anchor.cpp deleted file mode 100644 index e153161..0000000 --- a/src/model/domain/Anchor.cpp +++ /dev/null @@ -1,28 +0,0 @@ -/* - Ousía - Copyright (C) 2014 Benjamin Paaßen, Andreas Stöckel - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -#include - -namespace ousia { -namespace domain { - -//This class is fully specified by its header. - -} -} - diff --git a/src/model/domain/Anchor.hpp b/src/model/domain/Anchor.hpp deleted file mode 100644 index 66ff8eb..0000000 --- a/src/model/domain/Anchor.hpp +++ /dev/null @@ -1,36 +0,0 @@ -/* - Ousía - Copyright (C) 2014 Benjamin Paaßen, Andreas Stöckel - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -#ifndef _ANCHOR_HPP_ -#define _ANCHOR_HPP_ - -#include - -namespace ousia { -namespace domain { - -class Anchor : public GraphNode { - -public: - using GraphNode::GraphNode; - -}; -} -} - -#endif /* _ANCHOR_HPP_ */ diff --git a/src/model/domain/ClassSet.hpp b/src/model/domain/ClassSet.hpp new file mode 100644 index 0000000..ebfe508 --- /dev/null +++ b/src/model/domain/ClassSet.hpp @@ -0,0 +1,33 @@ +/* + Ousía + Copyright (C) 2014 Benjamin Paaßen, Andreas Stöckel + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +namespace ousia { +namespace domain { + +#include "Class.hpp"; + +class ClassSet { + +private: + std::vector classes; + +}; + +} +} + diff --git a/src/model/domain/Domain.hpp b/src/model/domain/Domain.hpp index dd5ee4d..957ae4a 100644 --- a/src/model/domain/Domain.hpp +++ b/src/model/domain/Domain.hpp @@ -16,34 +16,42 @@ along with this program. If not, see . */ -#ifndef _DOMAIN_HPP_ -#define _DOMAIN_HPP_ +#ifndef _OUSIA_MODEL_DOMAIN_DOMAIN_HPP_ +#define _OUSIA_MODEL_DOMAIN_DOMAIN_HPP_ -#include -#include -#include +//#include +//#include +//#include #include -#include "Class.hpp" -#include "Structure.hpp" -#include "Category.hpp" -#include "Layer.hpp" +//#include "Class.hpp" +//#include "Structure.hpp" +//#include "Category.hpp" +//#include "Layer.hpp" namespace ousia { +namespace model { namespace domain { class Domain : public GraphNode { private: - std::shared_ptr root; - std::vector> structures; - std::vector> categories; - std::vector> layers; +// std::shared_ptr root; +// std::vector> structures; +// std::vector> categories; +// std::vector> layers; public: - std::shared_ptr& getRoot() + Domain(std::shared_ptr parent = nullptr, + const std::string &name = "") : + GraphNode(GraphNodeType::Domain, parent, name) + { + // Do nothing here + } + +/* std::shared_ptr& getRoot() { return root; } @@ -61,12 +69,13 @@ public: std::vector>& getLayers() { return layers; - } + }*/ }; +} } } -#endif /* _DOMAIN_HPP_ */ +#endif /* _OUSIA_MODEL_DOMAIN_DOMAIN_HPP_ */ -- cgit v1.2.3