/** * @param $property Reflection_Property * @param $value mixed * @param $preprop string */ public function __construct(Reflection_Property $property = null, $value = null, $preprop = null) { if (isset($property)) { $name = $property->pathAsField(); if (strpos($name, '[')) { $preprop2 = lLastParse($name, '['); $preprop = $preprop ? $preprop . '[' . lParse($preprop2, '[') . '[' . rParse($preprop2, '[') : $preprop2; $name = lParse(rLastParse($name, '['), ']'); } parent::__construct($name, $property->getType(), $value, $preprop); $this->null = $property->getAnnotation('null')->value; $this->property = $property; $this->readonly = $property->getListAnnotation('user')->has(User_Annotation::READONLY); } else { parent::__construct(null, null, $value, $preprop); } }