]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.databoard/cpp/DataBoardTest/DataBoard/UnionType.cpp
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.databoard / cpp / DataBoardTest / DataBoard / UnionType.cpp
1 #include "UnionType.h"\r
2 \r
3 #include "Component.h"\r
4 \r
5 namespace Databoard {\r
6         namespace Type {\r
7 \r
8                 UnionType::UnionType()\r
9                 {\r
10                 }\r
11 \r
12                 //UnionType::UnionType(std::vector<Component*> components)\r
13                 //{\r
14                 //      for(int i = 0; i < (int)components.size(); ++i)\r
15                 //      {\r
16                 //              this->components.push_back(components.at(i));\r
17                 //      }\r
18                 //}\r
19 \r
20                 UnionType::~UnionType()\r
21                 {\r
22                         for(int i = 0; i < (int)components.size(); ++i)\r
23                         {\r
24                                 delete components.at(i);\r
25                                 components.at(i) = NULL;\r
26                         }\r
27 \r
28                         components.clear();\r
29                 }\r
30 \r
31                 void UnionType::addComponent(std::string name, DataType* type)\r
32                 {\r
33                         Component* component = new Component(name, type);\r
34 \r
35                         components.push_back(component);\r
36                 }\r
37 \r
38                 int UnionType::count()\r
39                 {\r
40                         return (int)components.size();\r
41                 }\r
42 \r
43                 int UnionType::getComponentIndex(std::string tagName)\r
44                 {\r
45                         for(int i = 0;i < (int)components.size(); ++i)\r
46                         {\r
47                                 if(components.at(i)->getName() == tagName)\r
48                                 {\r
49                                         return i;\r
50                                 }\r
51                         }\r
52 \r
53                         return -1;\r
54                 }\r
55 \r
56                 Component* UnionType::getComponent(int i)\r
57                 {\r
58                         if(i >= 0 && i < (int)components.size())\r
59                         {\r
60                                 return components.at(i);\r
61                         }\r
62 \r
63                         return NULL;\r
64                 }\r
65 \r
66                 //std::vector<Component*> UnionType::getComponents()\r
67                 //{\r
68                 //}\r
69 \r
70                 std::string UnionType::writeOut(int /*indent*/)\r
71                 {\r
72                         std::string s;\r
73 \r
74                         for(int i = 0; i < (int)components.size(); ++i)\r
75                         {\r
76                                 s += "| ";\r
77 \r
78                                 s += components.at(i)->getName();\r
79 \r
80                                 if(i != ((int)components.size()-1))\r
81                                 {\r
82                                         s += " ";\r
83                                 }\r
84                         }\r
85 \r
86                         return s;\r
87                 }\r
88         }\r
89 }\r