public function getMethod(ClassReflection $classReflection, string $methodName) : MethodReflection
{
$metadata = $this->metadataSource->getMetadataForClass($classReflection->getNativeReflection());
$sentryMethodSearchResult = $metadata->getSentryMethodByNameAndRequiredVisibility($methodName, Visibility::get(Visibility::VISIBILITY_PRIVATE));
$property = $sentryMethodSearchResult->getProperty();
$sentryMethod = $sentryMethodSearchResult->getSentryMethod();
$sentryAccess = $sentryMethod->getSentryAccess();
$isSetter = $sentryAccess->equals(new SentryAccess('set'));
$methodHasParameter = $isSetter || $sentryAccess->equals(new SentryAccess('add')) || $sentryAccess->equals(new SentryAccess('remove')) || $sentryAccess->equals(new SentryAccess('contains'));
$propertyClass = $this->broker->getClass($property->getClassName());
return new SentryMethodReflection($methodName, $propertyClass, $sentryMethod->getMethodVisibility(), $this->phpClassReflectionExtension->getProperty($propertyClass, $property->getName())->getType(), $methodHasParameter ? $isSetter ? $property->isNullable() : false : null);
}