#pragma once
#include "CivInpBuilder.h"

/**
  方案模拟转inp文件构造器
*/
class CivProjInpBuilder: public CivInpBuilder
{
public:
	explicit CivProjInpBuilder(const std::string& uri);
	~CivProjInpBuilder();

	/**/
	void setProjCode(const std::string& projCode);
	// 预处理，阀门，水泵等类管段类型的组件
	void preHandleLikelyPipe() override;
	void buildNode() override;
	void buildPipe()override;
	void buildTank()override;
	void buildVavle()override;
	void buildPump()override;
	void buildReservoir()override;
	void buildEmitter()override;
	void buildPatterns() override;
	void buildCoordnates() override;
	void buildVertices() override;
	void buildLabels() override;
	void buildTags() override;
	void buildBackDrop() override;
	void buildQuality() override;
	void buildSources() override;
	void buildMixing() override;
	void buildCurves() override;
	void buildStatus() override;
	void buildControls() override;
	void buildRules() override;
	void buildDemands() override;
private:
	std::string mProjCode;
};
