public function __construct(array $propertiesClassReflectionExtensions, array $methodsClassReflectionExtensions, array $dynamicMethodReturnTypeExtensions, FunctionReflectionFactory $functionReflectionFactory)
{
$this->propertiesClassReflectionExtensions = $propertiesClassReflectionExtensions;
$this->methodsClassReflectionExtensions = $methodsClassReflectionExtensions;
foreach (array_merge($propertiesClassReflectionExtensions, $methodsClassReflectionExtensions, $dynamicMethodReturnTypeExtensions) as $extension) {
if ($extension instanceof BrokerAwareClassReflectionExtension) {
$extension->setBroker($this);
}
}
foreach ($dynamicMethodReturnTypeExtensions as $dynamicMethodReturnTypeExtension) {
$this->dynamicMethodReturnTypeExtensions[$dynamicMethodReturnTypeExtension->getClass()][] = $dynamicMethodReturnTypeExtension;
}
$this->functionReflectionFactory = $functionReflectionFactory;
}