summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2014-03-04 15:16:06 +0000
committerandreas <andreas@daaaf23c-2e50-4459-9457-1e69db5a47bf>2014-03-04 15:16:06 +0000
commitdf938ff92ea02f26c594c610234754101138f646 (patch)
tree44627288bdbb469344eeb81c46657da7888c8650 /src
parentc543117ff43c63a053ea786ed606398ac4687494 (diff)
added unit test framework
git-svn-id: file:///var/local/svn/basicwriter@14 daaaf23c-2e50-4459-9457-1e69db5a47bf
Diffstat (limited to 'src')
-rw-r--r--src/main.cpp17
-rw-r--r--src/model/GraphNode.cpp54
-rw-r--r--src/model/GraphNode.hpp68
-rw-r--r--src/model/domain/Domain.cpp20
-rw-r--r--src/model/domain/Domain.hpp40
5 files changed, 193 insertions, 6 deletions
diff --git a/src/main.cpp b/src/main.cpp
index efe3031..5c01bc3 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,4 +1,3 @@
-#include <gui/notepad.hpp>
#include <QApplication>
#include <QFile>
#include <QIODevice>
@@ -7,11 +6,18 @@
#include <vector>
#include <iostream>
+#include <model/GraphNode.hpp>
+
+using namespace ousia;
+
int main(int argc, char *argv[])
{
- QApplication a(argc, argv);
- Notepad w;
- w.show();
+ std::shared_ptr<GraphNode> nd1{new GraphNode("node1")};
+ std::shared_ptr<GraphNode> nd2{new GraphNode("node2", nd1)};
+
+ std::cout << nd2->getParent()->getName() << std::endl;
+
+ return 0;
// Open the file given as first argument
/* QFile file(argv[1]);
@@ -31,6 +37,5 @@ int main(int argc, char *argv[])
return 1;
}
return 0;*/
-
- return a.exec();
}
+
diff --git a/src/model/GraphNode.cpp b/src/model/GraphNode.cpp
new file mode 100644
index 0000000..affc3af
--- /dev/null
+++ b/src/model/GraphNode.cpp
@@ -0,0 +1,54 @@
+/*
+ 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 <http://www.gnu.org/licenses/>.
+*/
+
+#include "GraphNode.hpp"
+
+#include <iostream>
+#include <sstream>
+
+namespace ousia {
+
+GraphNode::GraphNode() :
+ parent(nullptr)
+{
+ // Do nothing here
+}
+
+GraphNode::GraphNode(std::shared_ptr<GraphNode> parent) :
+ parent(parent)
+{
+ // Do nothing here
+}
+
+GraphNode::GraphNode(const std::string &name, std::shared_ptr<GraphNode> parent) :
+ name(name), parent(parent)
+{
+ // Do nothing here
+}
+
+const std::string GraphNode::getFullyQualifiedName()
+{
+ if (parent) {
+ std::stringstream ss;
+ ss << parent->getFullyQualifiedName() << "." << name;
+ return ss.str();
+ }
+ return name;
+}
+
+}
diff --git a/src/model/GraphNode.hpp b/src/model/GraphNode.hpp
new file mode 100644
index 0000000..39770dd
--- /dev/null
+++ b/src/model/GraphNode.hpp
@@ -0,0 +1,68 @@
+/*
+ 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 <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef _GRAPH_NODE_HPP_
+#define _GRAPH_NODE_HPP_
+
+#include <string>
+#include <memory>
+
+namespace ousia {
+
+class GraphNode {
+
+private:
+ std::string name;
+ std::shared_ptr<GraphNode> parent;
+
+public:
+ GraphNode();
+
+ GraphNode(std::shared_ptr<GraphNode> parent);
+
+ GraphNode(const std::string &name, std::shared_ptr<GraphNode> parent = nullptr);
+
+ const std::string& getName()
+ {
+ return name;
+ }
+
+ const std::string getFullyQualifiedName();
+
+ void setName(const std::string &name)
+ {
+ this->name = name;
+ }
+
+ std::shared_ptr<GraphNode> getParent()
+ {
+ return std::shared_ptr<GraphNode>(parent);
+ }
+
+ void setParent(std::shared_ptr<GraphNode> parent)
+ {
+ this->parent = parent;
+ }
+
+
+};
+
+}
+
+#endif /* _GRAPH_NODE_HPP_ */
+
diff --git a/src/model/domain/Domain.cpp b/src/model/domain/Domain.cpp
new file mode 100644
index 0000000..110e367
--- /dev/null
+++ b/src/model/domain/Domain.cpp
@@ -0,0 +1,20 @@
+/*
+ BasicWriter
+ 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 <http://www.gnu.org/licenses/>.
+*/
+
+
+
diff --git a/src/model/domain/Domain.hpp b/src/model/domain/Domain.hpp
new file mode 100644
index 0000000..98b440a
--- /dev/null
+++ b/src/model/domain/Domain.hpp
@@ -0,0 +1,40 @@
+/*
+ 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 <http://www.gnu.org/licenses/>.
+*/
+
+#include <memory>
+#include <string>
+#include <vector>
+
+#include <model/GraphNode.hpp>
+
+namespace ousia {
+namespace domain {
+
+class Domain : public GraphNode {
+
+private:
+ std::shared_ptr<Class> root;
+ std::vector<std::shared_ptr<Structure>> structures;
+ std::vector<std::shared_ptr<Category>> categories;
+ std::vector<std::shared_ptr<Layer>> layers;
+
+};
+
+}
+}
+