#include "CivAttributes.h"

CivAttributes::CivAttributes(const Params& params)
{
	mParams = params;
}

void CivAttributes::setAttribute(const std::string& name, const CivVariant& value)
{
	mParams.insert(Pair(name, value));
}

CivVariant CivAttributes::attribute(const std::string& name) const
{
	Params::const_iterator iter = mParams.find(name);
	if (iter != mParams.cend())
	{
		return iter->second;
	}
	return CivVariant();
}

void CivAttributes::merge(const CivAttributes& attribute)
{
	Params params= attribute.mParams;
	mParams.insert(params.cbegin(), params.cend());
}

CivAttributes::Params CivAttributes::attributes() const
{
	return mParams;
}