/*
 * flags.hpp
 *
 *  Created on: Jun 14, 2018
 *      Author: vadims
 */

#ifndef FLAGS_HPP_
#define FLAGS_HPP_

#include <iostream>
#include <vector>
#include "nlohmann/json.hpp"
using json = nlohmann::json;
class Flag
{
private:

	std::string name; 	// name of flags
	std::string condition; //condition for flag to be true
	std::vector<std::string> entityList;		// List of entities (bcs, domains, materials...), to which this flag applies
	bool value;
	std::string solverKey;
	bool NLFlag;

public:
	Flag(std::string, json);
	~Flag() { };

	std::string getName();
	std::string getCondition();
	std::vector<std::string> getEntityList();
	std::string getStringValue();
	void setValue(bool);
	bool getValue();
	std::string getSolverKey();
	void setSolverKey(std::string);
	bool isNLFlag();

};


#endif /* FLAGS_HPP_ */
