summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/model/domain/Anchor.cpp28
-rw-r--r--src/model/domain/Anchor.hpp36
-rw-r--r--src/model/domain/Annotation.cpp28
-rw-r--r--src/model/domain/Annotation.hpp81
-rw-r--r--src/model/domain/Field.cpp27
-rw-r--r--src/model/domain/Field.hpp80
-rw-r--r--src/model/domain/Layer.cpp27
-rw-r--r--src/model/domain/Layer.hpp47
-rw-r--r--src/model/domain/Structure.cpp29
-rw-r--r--src/model/domain/Structure.hpp33
-rw-r--r--src/model/types/Type.cpp29
-rw-r--r--src/model/types/Type.hpp33
-rw-r--r--src/model/types/Value.cpp29
-rw-r--r--src/model/types/Value.hpp31
14 files changed, 538 insertions, 0 deletions
diff --git a/src/model/domain/Anchor.cpp b/src/model/domain/Anchor.cpp
new file mode 100644
index 0000000..e153161
--- /dev/null
+++ b/src/model/domain/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 <http://www.gnu.org/licenses/>.
+*/
+
+#include <model/domain/Anchor.hpp>
+
+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
new file mode 100644
index 0000000..66ff8eb
--- /dev/null
+++ b/src/model/domain/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 <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef _ANCHOR_HPP_
+#define _ANCHOR_HPP_
+
+#include <model/GraphNode.hpp>
+
+namespace ousia {
+namespace domain {
+
+class Anchor : public GraphNode {
+
+public:
+ using GraphNode::GraphNode;
+
+};
+}
+}
+
+#endif /* _ANCHOR_HPP_ */
diff --git a/src/model/domain/Annotation.cpp b/src/model/domain/Annotation.cpp
new file mode 100644
index 0000000..8dabf5e
--- /dev/null
+++ b/src/model/domain/Annotation.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 <http://www.gnu.org/licenses/>.
+*/
+
+#include <model/domain/Annotation.hpp>
+
+namespace ousia {
+namespace domain {
+
+//This class is fully defined by its header.
+
+}
+}
+
diff --git a/src/model/domain/Annotation.hpp b/src/model/domain/Annotation.hpp
new file mode 100644
index 0000000..233b421
--- /dev/null
+++ b/src/model/domain/Annotation.hpp
@@ -0,0 +1,81 @@
+/*
+ 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 _ANNOTATION_HPP_
+#define _ANNOTATION_HPP_
+
+#include <memory>
+#include <vector>
+
+#include <model/GraphNode.hpp>
+#include <model/domain/Anchor.hpp>
+#include <model/domain/Structure.hpp>
+#include <model/domain/Field.hpp>
+
+namespace ousia {
+namespace domain {
+
+//class Structure;
+//class Anchor;
+//class Field;
+
+class Annotation : public GraphNode {
+
+private:
+ std::vector<std::shared_ptr<Structure>> structures;
+ std::vector<std::shared_ptr<Field>> fields;
+ std::shared_ptr<Anchor> start;
+ std::shared_ptr<Anchor> end;
+
+public:
+ using GraphNode::GraphNode;
+
+ std::vector<std::shared_ptr<Structure>>& getStructures()
+ {
+ return structures;
+ }
+
+ std::vector<std::shared_ptr<Field>>& getFields()
+ {
+ return fields;
+ }
+
+ std::shared_ptr<Anchor> getStart()
+ {
+ return start;
+ }
+
+ void setStart(std::shared_ptr<Anchor> start)
+ {
+ this->start = start;
+ }
+
+ std::shared_ptr<Anchor> getEnd()
+ {
+ return end;
+ }
+
+ void setEnd(std::shared_ptr<Anchor> end)
+ {
+ this->end = end;
+ }
+};
+}
+}
+
+#endif /* _ANNOTATION_HPP_ */
diff --git a/src/model/domain/Field.cpp b/src/model/domain/Field.cpp
new file mode 100644
index 0000000..4fd06a3
--- /dev/null
+++ b/src/model/domain/Field.cpp
@@ -0,0 +1,27 @@
+/*
+ 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 <model/domain/Field.hpp>
+
+namespace ousia {
+namespace domain {
+
+ //This class is fully specified by its header.
+
+}
+}
diff --git a/src/model/domain/Field.hpp b/src/model/domain/Field.hpp
new file mode 100644
index 0000000..d1944ee
--- /dev/null
+++ b/src/model/domain/Field.hpp
@@ -0,0 +1,80 @@
+/*
+ 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 _FIELD_HPP_
+#define _FIELD_HPP_
+
+#include <memory>
+
+#include <model/GraphNode.hpp>
+#include <model/types/Type.hpp>
+#include <model/types/Value.hpp>
+
+namespace ousia {
+
+//namespace types {
+// class Type;
+// class Value;
+//}
+
+namespace domain {
+
+class Field : public GraphNode {
+
+private:
+ std::shared_ptr<types::Type> type;
+ std::shared_ptr<types::Value> value;
+ bool optional;
+
+public:
+ using GraphNode::GraphNode;
+
+ std::shared_ptr<types::Type> getType()
+ {
+ return type;
+ }
+
+ void setType(std::shared_ptr<types::Type> type)
+ {
+ this->type = type;
+ }
+
+ std::shared_ptr<types::Value> getValue()
+ {
+ return value;
+ }
+
+ void setValue(std::shared_ptr<types::Value> value)
+ {
+ this->value = value;
+ }
+
+ bool getOptional()
+ {
+ return optional;
+ }
+
+ void setOptional(bool optional)
+ {
+ this->optional = optional;
+ }
+};
+}
+}
+
+#endif /* _FIELD_HPP_ */
diff --git a/src/model/domain/Layer.cpp b/src/model/domain/Layer.cpp
new file mode 100644
index 0000000..fb22b4c
--- /dev/null
+++ b/src/model/domain/Layer.cpp
@@ -0,0 +1,27 @@
+/*
+ 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 <model/domain/Layer.hpp>
+
+namespace ousia {
+namespace domain {
+
+ //This class is fully specified by its header.
+
+}
+}
diff --git a/src/model/domain/Layer.hpp b/src/model/domain/Layer.hpp
new file mode 100644
index 0000000..5d609ca
--- /dev/null
+++ b/src/model/domain/Layer.hpp
@@ -0,0 +1,47 @@
+/*
+ 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 _LAYER_HPP_
+#define _LAYER_HPP_
+
+#include <memory>
+#include <vector>
+
+#include <model/GraphNode.hpp>
+#include <model/domain/Annotation.hpp>
+
+namespace ousia {
+namespace domain {
+
+class Layer : public GraphNode {
+
+private:
+ std::vector<std::shared_ptr<Annotation>> annotations;
+
+public:
+ using GraphNode::GraphNode;
+
+ std::vector<std::shared_ptr<Annotation>>& getAnnotations()
+ {
+ return annotations;
+ }
+};
+}
+}
+
+#endif /* _LAYER_HPP_ */
diff --git a/src/model/domain/Structure.cpp b/src/model/domain/Structure.cpp
new file mode 100644
index 0000000..fd9f3ce
--- /dev/null
+++ b/src/model/domain/Structure.cpp
@@ -0,0 +1,29 @@
+/*
+ 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 <model/domain/Structure.hpp>
+
+namespace ousia {
+namespace domain {
+
+ //This class for now has no special features that would distinguish it
+ //from an abstract GraphNode.
+
+}
+}
diff --git a/src/model/domain/Structure.hpp b/src/model/domain/Structure.hpp
new file mode 100644
index 0000000..897b265
--- /dev/null
+++ b/src/model/domain/Structure.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 <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef _STRUCTURE_HPP_
+#define _STRUCTURE_HPP_
+
+#include <model/GraphNode.hpp>
+
+namespace ousia {
+namespace domain {
+
+class Structure : public GraphNode {
+ using GraphNode::GraphNode;
+};
+}
+}
+
+#endif /* _STRUCTURE_HPP_ */
diff --git a/src/model/types/Type.cpp b/src/model/types/Type.cpp
new file mode 100644
index 0000000..d219b61
--- /dev/null
+++ b/src/model/types/Type.cpp
@@ -0,0 +1,29 @@
+/*
+ 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 <model/GraphNode.hpp>
+#include <model/types/Type.hpp>
+
+namespace ousia {
+namespace types {
+
+
+//TODO: THIS IS A DUMMY CLASS DECLARATION
+
+}
+}
diff --git a/src/model/types/Type.hpp b/src/model/types/Type.hpp
new file mode 100644
index 0000000..155f898
--- /dev/null
+++ b/src/model/types/Type.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 <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef _TYPE_HPP_
+#define _TYPE_HPP_
+
+#include <model/GraphNode.hpp>
+
+namespace ousia {
+namespace types {
+
+class Type : public GraphNode {
+
+//TODO: THIS IS A DUMMY CLASS DECLARATION
+};
+}
+}
+#endif /* _TYPE_HPP_ */
diff --git a/src/model/types/Value.cpp b/src/model/types/Value.cpp
new file mode 100644
index 0000000..73d233a
--- /dev/null
+++ b/src/model/types/Value.cpp
@@ -0,0 +1,29 @@
+/*
+ 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 <model/GraphNode.hpp>
+#include <model/types/Value.hpp>
+
+namespace ousia {
+namespace types {
+
+
+//TODO: THIS IS A DUMMY CLASS DECLARATION
+
+}
+}
diff --git a/src/model/types/Value.hpp b/src/model/types/Value.hpp
new file mode 100644
index 0000000..3076dd2
--- /dev/null
+++ b/src/model/types/Value.hpp
@@ -0,0 +1,31 @@
+/*
+ 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 _VALUE_HPP_
+#define _VALUE_HPP_
+
+namespace ousia {
+namespace types {
+
+class Value {
+
+//TODO: THIS IS A DUMMY CLASS DECLARATION
+};
+}
+}
+#endif /* _VALUE_HPP_ */