#ifndef LINEARFUNCTIONBLOCK_HEADERFILE
#define LINEARFUNCTIONBLOCK_HEADERFILE

#include <vector>
#include <string>

#include "LinearFunction.h"
#include "Module.h"
#include "stdio.h"

using namespace std;

class LinearFunctionBlock : public Module{

private:	
	//CHECK: list, vector or other container?
	vector<LinearFunction*> vLinearFunctions;

public:
	LinearFunctionBlock();
	LinearFunctionBlock(std::string name);
	~LinearFunctionBlock();

	bool addLinearFunction(LinearFunction *linearFunction);

	//NOTE: Specific Function for CAH Project (DATE18) 
	void changeFunctionBlockIncr(float newBoundary);
	void changeFunctionBlockDecr(float newBoundary);

	vector<LinearFunction*>& get_all_LinearFunctions();

	float getY(float x);

	void printFunctionBlock(std::string name);
};

#endif
