-#include "RecordType.h"\r
-\r
-#include "Component.h"\r
-\r
-#include <string>\r
-#include <iostream>\r
-#include <sstream>\r
-\r
-namespace Databoard {\r
- namespace Type {\r
-\r
- RecordType::RecordType()\r
- {\r
- }\r
-\r
- RecordType::RecordType(bool referable, std::vector<Component*> components)\r
- {\r
- this->referable = referable;\r
-\r
- this->components.resize(components.size(), NULL);\r
-\r
- for(int i = 0; i < (int)this->components.size(); ++i)\r
- {\r
- this->components[i] = components[i];\r
- }\r
- }\r
-\r
- RecordType::~RecordType()\r
- {\r
- for(int i = 0; i < (int)components.size(); ++i)\r
- {\r
- delete components.at(i);\r
- }\r
-\r
- components.clear();\r
- }\r
-\r
- bool RecordType::isReferable()\r
- {\r
- return referable;\r
- }\r
-\r
- void RecordType::addComponent(std::string name, DataType* type)\r
- {\r
- Component* component = new Component(name, type);\r
-\r
- components.push_back(component);\r
- }\r
-\r
- int RecordType::getComponentIndex(std::string fieldName)\r
- {\r
- for(int i = 0; i < (int)components.size(); ++i)\r
- {\r
- if(components.at(i)->getName() == fieldName)\r
- {\r
- return i;\r
- }\r
- }\r
-\r
- return -1;\r
- }\r
-\r
- Component* RecordType::getComponent(std::string fieldName)\r
- {\r
- for(int i = 0; i < (int)components.size(); ++i)\r
- {\r
- if(components.at(i)->getName() == fieldName)\r
- {\r
- return components.at(i);\r
- }\r
- }\r
-\r
- return NULL;\r
- }\r
-\r
- int RecordType::count()\r
- {\r
- return (int)components.size();\r
- }\r
-\r
- Component* RecordType::getComponent(int i)\r
- {\r
- return components.at(i);\r
- }\r
-\r
- //std::vector<Component*> RecordType::getComponents()\r
- //{\r
- //}\r
-\r
- std::string RecordType::writeOut(int indent)\r
- {\r
- bool isTuple = true;\r
-\r
- for(int i = 0; i < (int)components.size(); ++i)\r
- {\r
- std::istringstream oss(components.at(i)->getName());\r
-\r
- int name;\r
-\r
- oss >> name;\r
-\r
- if(name != i)\r
- {\r
- isTuple = false;\r
-\r
- break;\r
- }\r
- }\r
-\r
- std::string s;\r
-\r
- if(isTuple == false)\r
- {\r
- s += "{\n";\r
- }\r
- else\r
- {\r
- s += "( ";\r
- }\r
-\r
- indent += 1;\r
-\r
- for(int i = 0; i < (int)components.size(); ++i)\r
- {\r
- if(isTuple == false)\r
- {\r
- s.append(indent * 2, ' ');\r
-\r
- s += components.at(i)->getName() + " : ";\r
- }\r
-\r
- s += components.at(i)->getDataBoard()->writeOut(indent);\r
-\r
- if(i != ((int)components.size()-1))\r
- {\r
- s += ",";\r
- }\r
-\r
- if(isTuple == false)\r
- {\r
- s += "\n";\r
- }\r
- else\r
- {\r
- s += " ";\r
- }\r
- }\r
-\r
- indent -= 1;\r
-\r
- if(isTuple == false)\r
- {\r
- s.append(indent * 2, ' ');\r
-\r
- s += "}";\r
- }\r
- else\r
- {\r
- s += ")";\r
- }\r
-\r
- return s;\r
- }\r
- }\r
-}\r
+#include "RecordType.h"
+
+#include "Component.h"
+
+#include <string>
+#include <iostream>
+#include <sstream>
+
+namespace Databoard {
+ namespace Type {
+
+ RecordType::RecordType()
+ {
+ }
+
+ RecordType::RecordType(bool referable, std::vector<Component*> components)
+ {
+ this->referable = referable;
+
+ this->components.resize(components.size(), NULL);
+
+ for(int i = 0; i < (int)this->components.size(); ++i)
+ {
+ this->components[i] = components[i];
+ }
+ }
+
+ RecordType::~RecordType()
+ {
+ for(int i = 0; i < (int)components.size(); ++i)
+ {
+ delete components.at(i);
+ }
+
+ components.clear();
+ }
+
+ bool RecordType::isReferable()
+ {
+ return referable;
+ }
+
+ void RecordType::addComponent(std::string name, DataType* type)
+ {
+ Component* component = new Component(name, type);
+
+ components.push_back(component);
+ }
+
+ int RecordType::getComponentIndex(std::string fieldName)
+ {
+ for(int i = 0; i < (int)components.size(); ++i)
+ {
+ if(components.at(i)->getName() == fieldName)
+ {
+ return i;
+ }
+ }
+
+ return -1;
+ }
+
+ Component* RecordType::getComponent(std::string fieldName)
+ {
+ for(int i = 0; i < (int)components.size(); ++i)
+ {
+ if(components.at(i)->getName() == fieldName)
+ {
+ return components.at(i);
+ }
+ }
+
+ return NULL;
+ }
+
+ int RecordType::count()
+ {
+ return (int)components.size();
+ }
+
+ Component* RecordType::getComponent(int i)
+ {
+ return components.at(i);
+ }
+
+ //std::vector<Component*> RecordType::getComponents()
+ //{
+ //}
+
+ std::string RecordType::writeOut(int indent)
+ {
+ bool isTuple = true;
+
+ for(int i = 0; i < (int)components.size(); ++i)
+ {
+ std::istringstream oss(components.at(i)->getName());
+
+ int name;
+
+ oss >> name;
+
+ if(name != i)
+ {
+ isTuple = false;
+
+ break;
+ }
+ }
+
+ std::string s;
+
+ if(isTuple == false)
+ {
+ s += "{\n";
+ }
+ else
+ {
+ s += "( ";
+ }
+
+ indent += 1;
+
+ for(int i = 0; i < (int)components.size(); ++i)
+ {
+ if(isTuple == false)
+ {
+ s.append(indent * 2, ' ');
+
+ s += components.at(i)->getName() + " : ";
+ }
+
+ s += components.at(i)->getDataBoard()->writeOut(indent);
+
+ if(i != ((int)components.size()-1))
+ {
+ s += ",";
+ }
+
+ if(isTuple == false)
+ {
+ s += "\n";
+ }
+ else
+ {
+ s += " ";
+ }
+ }
+
+ indent -= 1;
+
+ if(isTuple == false)
+ {
+ s.append(indent * 2, ' ');
+
+ s += "}";
+ }
+ else
+ {
+ s += ")";
+ }
+
+ return s;
+ }
+ }
+}