1 #include "RecordType.h"
12 RecordType::RecordType()
16 RecordType::RecordType(bool referable, std::vector<Component*> components)
18 this->referable = referable;
20 this->components.resize(components.size(), NULL);
22 for(int i = 0; i < (int)this->components.size(); ++i)
24 this->components[i] = components[i];
28 RecordType::~RecordType()
30 for(int i = 0; i < (int)components.size(); ++i)
32 delete components.at(i);
38 bool RecordType::isReferable()
43 void RecordType::addComponent(std::string name, DataType* type)
45 Component* component = new Component(name, type);
47 components.push_back(component);
50 int RecordType::getComponentIndex(std::string fieldName)
52 for(int i = 0; i < (int)components.size(); ++i)
54 if(components.at(i)->getName() == fieldName)
63 Component* RecordType::getComponent(std::string fieldName)
65 for(int i = 0; i < (int)components.size(); ++i)
67 if(components.at(i)->getName() == fieldName)
69 return components.at(i);
76 int RecordType::count()
78 return (int)components.size();
81 Component* RecordType::getComponent(int i)
83 return components.at(i);
86 //std::vector<Component*> RecordType::getComponents()
90 std::string RecordType::writeOut(int indent)
94 for(int i = 0; i < (int)components.size(); ++i)
96 std::istringstream oss(components.at(i)->getName());
123 for(int i = 0; i < (int)components.size(); ++i)
127 s.append(indent * 2, ' ');
129 s += components.at(i)->getName() + " : ";
132 s += components.at(i)->getDataBoard()->writeOut(indent);
134 if(i != ((int)components.size()-1))
153 s.append(indent * 2, ' ');