Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

TreeNode.C

Go to the documentation of this file.
00001 #include "TreeNode.h"
00002 
00003 TreeNode::TreeNode(string name,string value,vector<TreeNode *> * childVec) {
00004         init(name,value,childVec);
00005 }
00006 TreeNode::TreeNode(string name,string value) {
00007         init(name,value,NULL);
00008 }
00009 TreeNode::TreeNode() {
00010         init("","",NULL);
00011 }
00012 void TreeNode::init(string names,string values,vector<TreeNode*> * vecChild) {
00013         name = string(names);
00014         value = string(values);
00015         if (vecChild==NULL) {
00016                 children = new vector<TreeNode *>();
00017         } else {
00018                 children = vecChild;
00019         }
00020 }
00021 TreeNode::~TreeNode() {
00022         //cout << "~TreeNode()\n";
00023         clearChildren();
00024         //if (children!=NULL) {
00025                 //if (children->size() > 0) {
00026                 //if (children.size() > 0) {
00027                         //vector<TreeNode*>::iterator iter = NULL;
00028                         //for (iter = children->begin(); iter < children->end(); iter++) {
00029                         //for (iter = children.begin(); iter < children.end(); iter++) {
00030                         //      delete (TreeNode*)(*iter);
00031                         //}
00032                         //children->clear();
00033                         //children.clear();
00034                 //}
00035                 delete children;
00036         //}
00037 }
00038 TreeNode * TreeNode::getChild(const string & name) { //throws an exception if child not found!
00039                                                 //Easier than NULL pointers!
00040         vector<TreeNode*>::iterator iter;
00041         if (children!=NULL) {
00042                 //for (iter = children.begin(); iter < children.end(); iter++) {
00043                 for (iter = children->begin(); iter < children->end(); iter++) {
00044                         if ((*iter)->getName() == name) {
00045                                 return (*iter);
00046                         }
00047                 }
00048         }
00049         throw new string("Child Not Found!");
00050 }
00051 bool TreeNode::existChild(const string & name) { 
00052         vector<TreeNode*>::iterator iter;
00053         if (children!=NULL) {
00054                 for (iter = children->begin(); iter < children->end(); iter++) {
00055                 //for (iter = children.begin(); iter < children.end(); iter++) {
00056                         if ((*iter)->getName() == name) {
00057                                 return true;
00058                         }
00059                 }
00060         }
00061         return false;
00062 }
00063 vector<TreeNode*> * TreeNode::getChildren() {
00064         return children;
00065 }
00066 void TreeNode::clearChildren() {
00067         vector<TreeNode*>::iterator iter = NULL;
00068         for (iter = children->begin(); iter < children->end(); iter++) {
00069                 delete (TreeNode*)(*iter);
00070         }
00071         children->clear();
00072 }
00073 string TreeNode::getName() { return name; }
00074 string TreeNode::getValue() { return value; }

Generated on Tue Dec 17 21:14:13 2002 for AUSS_Connector by doxygen1.2.18