public function getFullClassName($type)
 {
     foreach ($this->getEntries() as $use) {
         if ($use['alias'] === $type) {
             return $use['type'];
         }
     }
     $sample = Property::build($type);
     if (!$sample->isBasicType() && substr($type, 0, 1) !== '\\') {
         $type = implode('\\', ['', $this->baseNamespace, $type]);
     }
     return $type;
 }
 /**
  * @param $object
  * @return Property[]
  */
 public static function getProperties($object)
 {
     $response = [];
     $oReflection = new \ReflectionClass($object);
     $namespaceUse = NamespaceUse::fromReflectionClass($oReflection);
     foreach (self::getDocBlockLines($oReflection) as $line) {
         preg_match(self::REGEX_PROPERTY_EXTRACT, $line, $matches);
         if ($matches) {
             $type = $namespaceUse->getFullClassName($matches[1]);
             $response[$matches[3]] = Property::build($type, $matches[2] === '[]');
         }
     }
     return $response;
 }