public function setPropertyClassName($propertyClassName)
    {
        $event = new SetPropertyClassNameEvent($propertyClassName, $this);
        $this->dispatchEvent($event);
        $propertyClassName = $event->getPropertyClassName();

        $this->propertyClassName = (string) $propertyClassName;
        $this->propertyClass     = new \ReflectionClass($this->propertyClassName);
        return $this;
    }