Go to the documentation of this file.00001 #ifndef Component_H
00002 #define Component_H
00003
00004 #include <vector>
00005
00006 using namespace std;
00007
00008 class Component
00009 {
00010 private:
00011 vector<Component *> subComponents;
00012 Component *parent;
00013 string name;
00014
00015 public:
00016 Component(void)
00017 {
00018 }
00019
00020 virtual ~Component(void)
00021 {
00022 }
00023
00024 Component* getParentComponent();
00025 {
00026 return parent;
00027 }
00028 void add(Component *childComponent)
00029 {
00030 subComponents.push_back(childComponent);
00031 childComponent->parent = this;
00032 }
00033 string getName()
00034 {
00035 return name;
00036 }
00037
00038 Component* getComponent(string name)
00039 {
00040 for(vector<Component *>::iterator iter = subComponents.begin(); iter != subComponents.end() ; iter ++)
00041 {
00042 if((*iter)->getName().compare(name) == 0)
00043 {
00044 return *iter;
00045 }
00046 }
00047 return NULL;
00048 }
00049
00050
00051
00052
00053
00054
00055 virtual void initialize() = 0;
00056
00057 };
00058
00059
00060 #endif
00061