示例#1
0
SourceCode* getSourceCode()
{
	string SourceCodeNode = "SourceCode";
	TiXmlElement *pNode = NULL;

	vector<TiXmlElement *> Nodes;

	if (GetNodePointerByName(pProjectNodes,SourceCodeNode,pNode))
	{
		string urlNode = "Url";
		string versionNode = "Version";
		string localPathNode = "LocalPath";
		TiXmlElement *pTempNode = pNode;
		SourceCode* sourceCode = new SourceCode();
		if (GetChildNodeByName(pTempNode,urlNode,pNode))
		{
			sourceCode->SetUrl(pNode->GetText());
			if (GetChildNodeByName(pTempNode,versionNode,pNode))
			{
				sourceCode->SetVersion(pNode->GetText());
				if (GetChildNodeByName(pTempNode,localPathNode,pNode))
				{
					sourceCode->SetLocalPath(pNode->GetText());

					//delete pNode;
					//delete pTempNode;
					return sourceCode;
				}
			}
		}
	}

	return NULL;
}
示例#2
0
list<BuildStep *> *getBuildStep()
{
	string ProcessNode = "Process";
	TiXmlElement *pNode = NULL;
	vector<TiXmlElement *> Nodes;

	if (GetNodePointerByName(pProjectNodes,ProcessNode,pNode))
	{
		string name = "Name";
		string program = "Program";
		string options = "Options";
		GetNodePointer(pNode,&Nodes);

		list<BuildStep *> *buildStep = new list<BuildStep *>();
		for (int i=0;i<Nodes.size();i++)
		{
			BuildStep *step = new BuildStep();
			if (GetNodePointerByName(Nodes.at(i),name,pNode))
			{
				step->SetName(pNode->GetText());
			} 
			else
			{
				return false;
			}
			if (GetChildNodeByName(Nodes.at(i),program,pNode))
			{
				step->SetProgram(pNode->GetText());
			}else return false;
			if (GetChildNodeByName(Nodes.at(i),options,pNode))
			{
				if (pNode==NULL)
				{
					step->SetOptions("");
				}
				else
				step->SetOptions(pNode->GetText());
			}else return false;

			buildStep->push_back(step);

			//delete step;
		}
		//delete pNode;
		return buildStep;
	} 
	else
	{
		return NULL;
	}
}
示例#3
0
Publish * getPublish()
{
	string PublishNode = "Publish";
	TiXmlElement *pNode = NULL;
	vector<TiXmlElement *> Nodes;

	if (GetNodePointerByName(pProjectNodes,PublishNode,pNode))
	{
		string url = "Url";
		string category = "Category";
		string component = "Component";
		string version = "Version";
		string importItem = "ImportItem";
					
		Publish *publish = new Publish();
			
		TiXmlElement * pTempNode = pNode;
		GetNodePointer(pTempNode,&Nodes);
		publish->SetUrl(Nodes.at(0)->GetText());
		publish->SetCategory(Nodes.at(1)->GetText());
		publish->SetComponent(Nodes.at(2)->GetText());
		publish->SetVersion(Nodes.at(3)->GetText());
		list<ImportItem *> itemList ;
		for(int i=4;i<Nodes.size();i++){
			string source = "Source";
			string target = "Target";
			ImportItem *item = new ImportItem();
			if (GetChildNodeByName(Nodes.at(i),source,pNode))
			{
				item->SetSource(pNode->GetText());
			}else return false;
			if (GetChildNodeByName(Nodes.at(i),target,pNode))
			{
				item->SetTarget(pNode->GetText());
			}else return false;

			itemList.push_back(item);
		}
		publish->SetImportItem(itemList);

		return publish;
	} 
	else
	{
		return NULL;
	}
}
示例#4
0
list<ImportStep *> * getImportStep()
{
	string ImportNode = "Import";
	TiXmlElement *pNode = NULL;
	vector<TiXmlElement *> Nodes;

	if (GetNodePointerByName(pProjectNodes,ImportNode,pNode))
	{
		string name	= "Name";
		string url = "Url";
		string importItem = "ImportItem";
		GetNodePointer(pNode,&Nodes);
		list<ImportStep *> *importStep = new list<ImportStep *>();
		for (int i=0;i<Nodes.size();i++)
		{
			ImportStep *step = new ImportStep();
			vector<TiXmlElement *> tNodes;
			GetNodePointer(Nodes.at(i),&tNodes);
			step->SetName(tNodes.at(0)->GetText());
			step->SetUrl(tNodes.at(1)->GetText());
			list<ImportItem *> itemList;
			for(int i=2;i<tNodes.size();i++){

				string source = "Source";
				string target = "Target";
				ImportItem *item = new ImportItem();
				if (GetChildNodeByName(tNodes.at(i),source,pNode))
				{
					item->SetSource(pNode->GetText());
				}else return false;
				if (GetChildNodeByName(tNodes.at(i),target,pNode))
				{
					item->SetTarget(pNode->GetText());
				}else return false;

				itemList.push_back(item);
				//delete item;
			}
			step->setItem(itemList);
			importStep->push_back(step);
			//delete step;
		}
		//delete pNode;
		return importStep;
	}else 
		return NULL;
}
示例#5
0
	const tinyxml2::XMLElement *XMLHelper::GetNodeXmlPath(const tinyxml2::XMLElement *element_, const char *path_)
	{
		vector<string> els = Split(path_, '\\');
		const tinyxml2::XMLElement *pElt = element_;

		for (unsigned int i=0; i<els.size(); i++)
		{
			pElt = GetChildNodeByName(pElt, els[i].c_str());

			if (pElt == nullptr) break;
		}

		return nullptr;
	}
示例#6
0
list<Dependence *> * getDependences()
{
	vector<TiXmlElement *> Nodes;
	TiXmlElement *pNode = NULL;
	string DependencesNode = "Dependences";

	if (GetNodePointerByName(pProjectNodes,DependencesNode,pNode))
	{
		string DependenceNode = "Dependence";

		GetNodePointer(pNode, &Nodes);
		list<Dependence *> *depList = new list<Dependence *>();
		for (int i=0;i<Nodes.size();i++)
		{

			TiXmlElement *pTempNode = Nodes.at(i);
			string server = "Server";
			string flag = "Flag";
			string repository = "Repository";
			string name = "Name";
			string version = "Version";
			string path = "Path";
			string localPath = "LocalPath";

			Dependence *dep = new Dependence();
			if (GetChildNodeByName(pTempNode,server,pNode))
			{
				dep->SetServer(pNode->GetText());
			}else
			{
				return false;
			}
			if (GetChildNodeByName(pTempNode,flag,pNode))
			{
				dep->SetFlag(pNode->GetText());
			}else
			{
				return false;
			}
			if (GetChildNodeByName(pTempNode,repository,pNode))
			{
				dep->SetRepository(pNode->GetText());
			}else
			{
				return false;
			}

			if (GetChildNodeByName(pTempNode,name,pNode))
			{
				dep->SetName(pNode->GetText());
			} 
			else
			{
				return false;
			}
			if (GetChildNodeByName(pTempNode,version,pNode))
			{
				dep->SetVersion(pNode->GetText());
			}else
			{
				return false;
			}
			if(GetChildNodeByName(pTempNode,path,pNode)){
				dep->SetPath(pNode->GetText());
			}else
			{
				return false;
			}
			if (GetChildNodeByName(pTempNode,localPath,pNode))
			{
				dep->SetLocalPath(pNode->GetText());
			} 
			else
			{
				return false;
			}

			depList->push_back(dep);
			//delete dep;
			//delete pTempNode;
		}
		//delete pNode;
		return depList;
	}else
	{
		return NULL;
	}
}