public function getProperties()
{
if ($this->properties === null) {
$this->properties = $this->getOwnProperties();
foreach ($this->reflection->getProperties($this->getVisibilityLevel()) as $property) {
/** @var ReflectionElement $property */
if (isset($this->properties[$property->getName()])) {
continue;
}
$apiProperty = $this->reflectionFactory->createFromReflection($property);
if (!$this->isDocumented() || $apiProperty->isDocumented()) {
$this->properties[$property->getName()] = $apiProperty;
}
}
}
return $this->properties;
}