protected function invokeSetter(ReflectionProperty $property, $value) : void
    {
        $methodName = $this->generateSetterName($property->getName());
        if ($this->hasInternalMethod($methodName)) {
            $this->$methodName($value);
            return;
        }

        throw new UndefinedPropertyException(sprintf(
            'No "%s"() method available for property "%s"', $methodName,
            $property->getName()
        ));
    }