/**
  * {@inheritdoc}
  */
 public function getOwnMagicMethods()
 {
     if ($this->ownMagicMethods === null) {
         $this->ownMagicMethods = [];
         if ($this->classReflection->isVisibilityLevelPublic() && $this->classReflection->getDocComment()) {
             $extractor = new AnnotationMethodExtractor($this->classReflection->getReflectionFactory());
             $this->ownMagicMethods += $extractor->extractFromReflection($this->classReflection);
         }
     }
     return $this->ownMagicMethods;
 }
 /**
  * {@inheritdoc}
  */
 public function getTraitMethods()
 {
     $methods = [];
     foreach ($this->originalReflection->getTraitMethods($this->classReflection->getVisibilityLevel()) as $method) {
         $apiMethod = $this->classReflection->getReflectionFactory()->createFromReflection($method);
         if (!$this->classReflection->isDocumented() || $apiMethod->isDocumented()) {
             $methods[$method->getName()] = $apiMethod;
         }
     }
     return $methods;
 }