/**
  * Initializes a reflection for the property
  *
  * @param string $className Name of the class with properties
  * @param string $propertyName Name of the property to reflect
  * @param Property $propertyType Property type definition node
  * @param PropertyProperty $propertyNode Concrete property definition (value, name)
  */
 public function __construct($className, $propertyName, Property $propertyType = null, PropertyProperty $propertyNode = null)
 {
     $this->className = $className;
     if (!$propertyType || !$propertyNode) {
         list($propertyType, $propertyNode) = ReflectionEngine::parseClassProperty($className, $propertyName);
     }
     $this->propertyTypeNode = $propertyType;
     $this->propertyNode = $propertyNode;
     // Let's unset original read-only properties to have a control over them via __get
     unset($this->name, $this->class);
 }