public function setFromValuePropertyName($fromValuePropertyName)
    {
        if (!is_string($fromValuePropertyName) || empty($fromValuePropertyName)) {
            throw new InvalidArgumentException('"From value property name" argument must be string and must not be empty.');
        }

        if (!property_exists($this, $fromValuePropertyName)) {
            throw new InvalidArgumentException(sprintf('Property "%s" does not exist.', $fromValuePropertyName));
        }

        $this->fromValuePropertyName = $fromValuePropertyName;

        return $this;
    }