/*
 * flags.cpp
 *
 *  Created on: Jun 14, 2018
 *      Author: vadims
 */

#include "Flag.hpp"

Flag::Flag(std::string name_, json valueJson) : name(name_)
{ 
	if (valueJson.is_string())
	{
		condition = valueJson.get<std::string>();
		NLFlag = false;

	}
	else if (valueJson.is_object())
	{
		condition = valueJson["condition"].get<std::string>();
		NLFlag = valueJson["isNLFlag"].get<bool>();
	}
	else
	{
		condition = "";
		NLFlag = false;
	}
	value = false; 
};

std::string Flag::getName()
{
	return name;
}
std::vector<std::string> Flag::getEntityList()
{
	return entityList;
}

std::string Flag::getCondition()
{
	return condition;
}

void Flag::setValue(bool val)
{
	value = val;
}

bool Flag::getValue()
{
	return value;
}

std::string Flag::getStringValue()
{
	if (value)
		return "1";
	else
		return "0";
}

std::string Flag::getSolverKey()
{
	return solverKey;
}

void Flag::setSolverKey(std::string slKey)
{
	solverKey = slKey;
}

bool Flag::isNLFlag()
{
	return NLFlag;
}
