/** * @param string $className * @param \Neos\Flow\Reflection\MethodReflection $method * @return void */ protected function reflectClassMethod($className, MethodReflection $method) { $methodName = $method->getName(); if ($method->isFinal()) { $this->classReflectionData[$className][self::DATA_CLASS_METHODS][$methodName][self::DATA_METHOD_FINAL] = true; } if ($method->isStatic()) { $this->classReflectionData[$className][self::DATA_CLASS_METHODS][$methodName][self::DATA_METHOD_STATIC] = true; } $visibility = $method->isPublic() ? self::VISIBILITY_PUBLIC : ($method->isProtected() ? self::VISIBILITY_PROTECTED : self::VISIBILITY_PRIVATE); $this->classReflectionData[$className][self::DATA_CLASS_METHODS][$methodName][self::DATA_METHOD_VISIBILITY] = $visibility; foreach ($this->getMethodAnnotations($className, $methodName) as $methodAnnotation) { $annotationClassName = get_class($methodAnnotation); if (!isset($this->classesByMethodAnnotations[$annotationClassName][$className])) { $this->classesByMethodAnnotations[$annotationClassName][$className] = []; } $this->classesByMethodAnnotations[$annotationClassName][$className][] = $methodName; } $returnType = $method->getDeclaredReturnType(); if ($returnType !== null) { $this->classReflectionData[$className][self::DATA_CLASS_METHODS][$methodName][self::DATA_METHOD_DECLARED_RETURN_TYPE] = $returnType; } foreach ($method->getParameters() as $parameter) { $this->reflectClassMethodParameter($className, $method, $parameter); } }