public static function setValueByPath($dataTree, $path, $value, $add)
	{
		$pathParts = explode(".", $path);

		$name = $pathParts[0];

		if (!$add and !isset($dataTree->{$name}))
		{
			return false;
		}

		if (count($pathParts) == 1)
		{
			$dataTree->{$name} = $value;

			return true;
		}

		if (isset($dataTree->{$name}))
		{
			$object = $dataTree->{$name};
		}
		else
		{
			$object = new \StdClass;

			$dataTree->{$name} = $object;
		}

		return ValueByPath::setValueByPath($object, implode(".", array_slice($pathParts, 1)), $value, $add);
	}