| @@ 21-82 (lines=62) @@ | ||
| 18 | * |
|
| 19 | * @package Nnx\JmsSerializerModule\EventDispatcher |
|
| 20 | */ |
|
| 21 | class EventDispatcherAbstractFactory implements AbstractFactoryInterface |
|
| 22 | { |
|
| 23 | /** |
|
| 24 | * @inheritdoc |
|
| 25 | * |
|
| 26 | * @param ServiceLocatorInterface $serviceLocator |
|
| 27 | * @param $name |
|
| 28 | * @param $requestedName |
|
| 29 | * |
|
| 30 | * @return bool|void |
|
| 31 | */ |
|
| 32 | public function canCreateServiceWithName(ServiceLocatorInterface $serviceLocator, $name, $requestedName) |
|
| 33 | { |
|
| 34 | return 0 === strpos($requestedName, 'nnxJmsSerializer.eventDispatchers.'); |
|
| 35 | } |
|
| 36 | ||
| 37 | /** |
|
| 38 | * @inheritdoc |
|
| 39 | * |
|
| 40 | * @param ServiceLocatorInterface $serviceLocator |
|
| 41 | * @param $name |
|
| 42 | * @param $requestedName |
|
| 43 | * |
|
| 44 | * @return EventDispatcherInterface |
|
| 45 | * @throws \Nnx\JmsSerializerModule\Options\Exception\InvalidArgumentException |
|
| 46 | * @throws \Nnx\JmsSerializerModule\EventDispatcher\Exception\RuntimeException |
|
| 47 | * @throws \Zend\ServiceManager\Exception\ServiceNotFoundException |
|
| 48 | */ |
|
| 49 | public function createServiceWithName(ServiceLocatorInterface $serviceLocator, $name, $requestedName) |
|
| 50 | { |
|
| 51 | $appServiceLocator = $serviceLocator instanceof AbstractPluginManager ? $serviceLocator->getServiceLocator() : $serviceLocator; |
|
| 52 | ||
| 53 | $eventDispatcherName = substr($requestedName, 34); |
|
| 54 | ||
| 55 | /** @var ModuleOptionsPluginManagerInterface $moduleOptionsManager */ |
|
| 56 | $moduleOptionsManager = $appServiceLocator->get(ModuleOptionsPluginManagerInterface::class); |
|
| 57 | ||
| 58 | /** @var ModuleOptions $moduleOptions */ |
|
| 59 | $moduleOptions = $moduleOptionsManager->get(ModuleOptions::class); |
|
| 60 | ||
| 61 | $eventDispatcherConfig = $moduleOptions->getEventDispatcher($eventDispatcherName); |
|
| 62 | ||
| 63 | $name = $eventDispatcherConfig->getName(); |
|
| 64 | $options = $eventDispatcherConfig->getOptions(); |
|
| 65 | ||
| 66 | $eventDispatcher = $serviceLocator->get( |
|
| 67 | $name, |
|
| 68 | $options |
|
| 69 | ); |
|
| 70 | ||
| 71 | if (!$eventDispatcher instanceof EventDispatcherInterface) { |
|
| 72 | $errMsg = sprintf( |
|
| 73 | 'Object constructor of type %s is invalid; must implement %s', |
|
| 74 | (is_object($eventDispatcher) ? get_class($eventDispatcher) : gettype($eventDispatcher)), |
|
| 75 | EventDispatcherInterface::class |
|
| 76 | ); |
|
| 77 | throw new Exception\RuntimeException($errMsg); |
|
| 78 | } |
|
| 79 | ||
| 80 | return $eventDispatcher; |
|
| 81 | } |
|
| 82 | } |
|
| 83 | ||
| @@ 20-82 (lines=63) @@ | ||
| 17 | * |
|
| 18 | * @package Nnx\JmsSerializerModule\HandlerRegistry |
|
| 19 | */ |
|
| 20 | class HandlerRegistryAbstractFactory implements AbstractFactoryInterface |
|
| 21 | { |
|
| 22 | /** |
|
| 23 | * @inheritdoc |
|
| 24 | * |
|
| 25 | * @param ServiceLocatorInterface $serviceLocator |
|
| 26 | * @param $name |
|
| 27 | * @param $requestedName |
|
| 28 | * |
|
| 29 | * @return bool|void |
|
| 30 | */ |
|
| 31 | public function canCreateServiceWithName(ServiceLocatorInterface $serviceLocator, $name, $requestedName) |
|
| 32 | { |
|
| 33 | return 0 === strpos($requestedName, 'nnxJmsSerializer.handlerRegistry.'); |
|
| 34 | } |
|
| 35 | ||
| 36 | /** |
|
| 37 | * @inheritdoc |
|
| 38 | * |
|
| 39 | * @param ServiceLocatorInterface $serviceLocator |
|
| 40 | * @param $name |
|
| 41 | * @param $requestedName |
|
| 42 | * |
|
| 43 | * @return HandlerRegistryInterface |
|
| 44 | * @throws \Nnx\JmsSerializerModule\HandlerRegistry\Exception\RuntimeException |
|
| 45 | * @throws \Nnx\JmsSerializerModule\MetadataDriver\Exception\RuntimeException |
|
| 46 | * @throws \Nnx\JmsSerializerModule\Options\Exception\InvalidArgumentException |
|
| 47 | * @throws \Zend\ServiceManager\Exception\ServiceNotFoundException |
|
| 48 | */ |
|
| 49 | public function createServiceWithName(ServiceLocatorInterface $serviceLocator, $name, $requestedName) |
|
| 50 | { |
|
| 51 | $appServiceLocator = $serviceLocator instanceof AbstractPluginManager ? $serviceLocator->getServiceLocator() : $serviceLocator; |
|
| 52 | ||
| 53 | $handlerRegistryName = substr($requestedName, 33); |
|
| 54 | ||
| 55 | /** @var ModuleOptionsPluginManagerInterface $moduleOptionsManager */ |
|
| 56 | $moduleOptionsManager = $appServiceLocator->get(ModuleOptionsPluginManagerInterface::class); |
|
| 57 | ||
| 58 | /** @var ModuleOptions $moduleOptions */ |
|
| 59 | $moduleOptions = $moduleOptionsManager->get(ModuleOptions::class); |
|
| 60 | ||
| 61 | $handlerRegistryConfig = $moduleOptions->getHandlerRegistry($handlerRegistryName); |
|
| 62 | ||
| 63 | $name = $handlerRegistryConfig->getName(); |
|
| 64 | $options = $handlerRegistryConfig->getOptions(); |
|
| 65 | ||
| 66 | $handlerRegistry = $serviceLocator->get( |
|
| 67 | $name, |
|
| 68 | $options |
|
| 69 | ); |
|
| 70 | ||
| 71 | if (!$handlerRegistry instanceof HandlerRegistryInterface) { |
|
| 72 | $errMsg = sprintf( |
|
| 73 | 'Handler registry of type %s is invalid; must implement %s', |
|
| 74 | (is_object($handlerRegistry) ? get_class($handlerRegistry) : gettype($handlerRegistry)), |
|
| 75 | HandlerRegistryInterface::class |
|
| 76 | ); |
|
| 77 | throw new Exception\RuntimeException($errMsg); |
|
| 78 | } |
|
| 79 | ||
| 80 | return $handlerRegistry; |
|
| 81 | } |
|
| 82 | } |
|
| 83 | ||
| @@ 22-83 (lines=62) @@ | ||
| 19 | * |
|
| 20 | * @package Nnx\JmsSerializerModule\MetadataDriver |
|
| 21 | */ |
|
| 22 | class FileLocatorAbstractFactory implements AbstractFactoryInterface |
|
| 23 | { |
|
| 24 | /** |
|
| 25 | * @inheritdoc |
|
| 26 | * |
|
| 27 | * @param ServiceLocatorInterface $serviceLocator |
|
| 28 | * @param $name |
|
| 29 | * @param $requestedName |
|
| 30 | * |
|
| 31 | * @return bool|void |
|
| 32 | */ |
|
| 33 | public function canCreateServiceWithName(ServiceLocatorInterface $serviceLocator, $name, $requestedName) |
|
| 34 | { |
|
| 35 | return 0 === strpos($requestedName, 'nnxJmsSerializer.fileLocators.'); |
|
| 36 | } |
|
| 37 | ||
| 38 | /** |
|
| 39 | * @inheritdoc |
|
| 40 | * |
|
| 41 | * @param ServiceLocatorInterface $serviceLocator |
|
| 42 | * @param $name |
|
| 43 | * @param $requestedName |
|
| 44 | * |
|
| 45 | * @return AdapterInterface |
|
| 46 | * @throws \Nnx\JmsSerializerModule\MetadataDriver\Exception\RuntimeException |
|
| 47 | * @throws \Nnx\JmsSerializerModule\Options\Exception\InvalidArgumentException |
|
| 48 | * @throws \Zend\ServiceManager\Exception\ServiceNotFoundException |
|
| 49 | */ |
|
| 50 | public function createServiceWithName(ServiceLocatorInterface $serviceLocator, $name, $requestedName) |
|
| 51 | { |
|
| 52 | $appServiceLocator = $serviceLocator instanceof AbstractPluginManager ? $serviceLocator->getServiceLocator() : $serviceLocator; |
|
| 53 | ||
| 54 | $fileLocatorName = substr($requestedName, 30); |
|
| 55 | ||
| 56 | /** @var ModuleOptionsPluginManagerInterface $moduleOptionsManager */ |
|
| 57 | $moduleOptionsManager = $appServiceLocator->get(ModuleOptionsPluginManagerInterface::class); |
|
| 58 | ||
| 59 | /** @var ModuleOptions $moduleOptions */ |
|
| 60 | $moduleOptions = $moduleOptionsManager->get(ModuleOptions::class); |
|
| 61 | ||
| 62 | $fileLocatorConfig = $moduleOptions->getFileLocator($fileLocatorName); |
|
| 63 | ||
| 64 | $name = $fileLocatorConfig->getName(); |
|
| 65 | $options = $fileLocatorConfig->getOptions(); |
|
| 66 | ||
| 67 | $fileLocator = $serviceLocator->get( |
|
| 68 | $name, |
|
| 69 | $options |
|
| 70 | ); |
|
| 71 | ||
| 72 | if (!$fileLocator instanceof FileLocatorInterface) { |
|
| 73 | $errMsg = sprintf( |
|
| 74 | 'File locator of type %s is invalid; must implement %s', |
|
| 75 | (is_object($fileLocator) ? get_class($fileLocator) : gettype($fileLocator)), |
|
| 76 | FileLocatorInterface::class |
|
| 77 | ); |
|
| 78 | throw new Exception\RuntimeException($errMsg); |
|
| 79 | } |
|
| 80 | ||
| 81 | return $fileLocator; |
|
| 82 | } |
|
| 83 | } |
|
| 84 | ||
| @@ 20-81 (lines=62) @@ | ||
| 17 | * |
|
| 18 | * @package Nnx\JmsSerializerModule\NamingStrategy |
|
| 19 | */ |
|
| 20 | class NamingStrategyAbstractFactory implements AbstractFactoryInterface |
|
| 21 | { |
|
| 22 | /** |
|
| 23 | * @inheritdoc |
|
| 24 | * |
|
| 25 | * @param ServiceLocatorInterface $serviceLocator |
|
| 26 | * @param $name |
|
| 27 | * @param $requestedName |
|
| 28 | * |
|
| 29 | * @return bool|void |
|
| 30 | */ |
|
| 31 | public function canCreateServiceWithName(ServiceLocatorInterface $serviceLocator, $name, $requestedName) |
|
| 32 | { |
|
| 33 | return 0 === strpos($requestedName, 'nnxJmsSerializer.namingStrategies.'); |
|
| 34 | } |
|
| 35 | ||
| 36 | /** |
|
| 37 | * @inheritdoc |
|
| 38 | * |
|
| 39 | * @param ServiceLocatorInterface $serviceLocator |
|
| 40 | * @param $name |
|
| 41 | * @param $requestedName |
|
| 42 | * |
|
| 43 | * @return PropertyNamingStrategyInterface |
|
| 44 | * @throws \Nnx\JmsSerializerModule\NamingStrategy\Exception\RuntimeException |
|
| 45 | * @throws \Nnx\JmsSerializerModule\Options\Exception\InvalidArgumentException |
|
| 46 | * @throws \Zend\ServiceManager\Exception\ServiceNotFoundException |
|
| 47 | */ |
|
| 48 | public function createServiceWithName(ServiceLocatorInterface $serviceLocator, $name, $requestedName) |
|
| 49 | { |
|
| 50 | $appServiceLocator = $serviceLocator instanceof AbstractPluginManager ? $serviceLocator->getServiceLocator() : $serviceLocator; |
|
| 51 | ||
| 52 | $strategyName = substr($requestedName, 34); |
|
| 53 | ||
| 54 | /** @var ModuleOptionsPluginManagerInterface $moduleOptionsManager */ |
|
| 55 | $moduleOptionsManager = $appServiceLocator->get(ModuleOptionsPluginManagerInterface::class); |
|
| 56 | ||
| 57 | /** @var ModuleOptions $moduleOptions */ |
|
| 58 | $moduleOptions = $moduleOptionsManager->get(ModuleOptions::class); |
|
| 59 | ||
| 60 | $strategyConfig = $moduleOptions->getNamingStrategy($strategyName); |
|
| 61 | ||
| 62 | $name = $strategyConfig->getName(); |
|
| 63 | $options = $strategyConfig->getOptions(); |
|
| 64 | ||
| 65 | $strategy = $serviceLocator->get( |
|
| 66 | $name, |
|
| 67 | $options |
|
| 68 | ); |
|
| 69 | ||
| 70 | if (!$strategy instanceof PropertyNamingStrategyInterface) { |
|
| 71 | $errMsg = sprintf( |
|
| 72 | 'Naming strategy of type %s is invalid; must implement %s', |
|
| 73 | (is_object($strategy) ? get_class($strategy) : gettype($strategy)), |
|
| 74 | PropertyNamingStrategyInterface::class |
|
| 75 | ); |
|
| 76 | throw new Exception\RuntimeException($errMsg); |
|
| 77 | } |
|
| 78 | ||
| 79 | return $strategy; |
|
| 80 | } |
|
| 81 | } |
|
| 82 | ||
| @@ 21-82 (lines=62) @@ | ||
| 18 | * |
|
| 19 | * @package Nnx\JmsSerializerModule\ObjectConstructor |
|
| 20 | */ |
|
| 21 | class ObjectConstructorAbstractFactory implements AbstractFactoryInterface |
|
| 22 | { |
|
| 23 | /** |
|
| 24 | * @inheritdoc |
|
| 25 | * |
|
| 26 | * @param ServiceLocatorInterface $serviceLocator |
|
| 27 | * @param $name |
|
| 28 | * @param $requestedName |
|
| 29 | * |
|
| 30 | * @return bool|void |
|
| 31 | */ |
|
| 32 | public function canCreateServiceWithName(ServiceLocatorInterface $serviceLocator, $name, $requestedName) |
|
| 33 | { |
|
| 34 | return 0 === strpos($requestedName, 'nnxJmsSerializer.objectConstructor.'); |
|
| 35 | } |
|
| 36 | ||
| 37 | /** |
|
| 38 | * @inheritdoc |
|
| 39 | * |
|
| 40 | * @param ServiceLocatorInterface $serviceLocator |
|
| 41 | * @param $name |
|
| 42 | * @param $requestedName |
|
| 43 | * |
|
| 44 | * @return ObjectConstructorInterface |
|
| 45 | * @throws \Nnx\JmsSerializerModule\ObjectConstructor\Exception\RuntimeException |
|
| 46 | * @throws \Zend\ServiceManager\Exception\ServiceNotFoundException |
|
| 47 | * @throws \Nnx\JmsSerializerModule\Options\Exception\InvalidArgumentException |
|
| 48 | */ |
|
| 49 | public function createServiceWithName(ServiceLocatorInterface $serviceLocator, $name, $requestedName) |
|
| 50 | { |
|
| 51 | $appServiceLocator = $serviceLocator instanceof AbstractPluginManager ? $serviceLocator->getServiceLocator() : $serviceLocator; |
|
| 52 | ||
| 53 | $objectConstructorName = substr($requestedName, 35); |
|
| 54 | ||
| 55 | /** @var ModuleOptionsPluginManagerInterface $moduleOptionsManager */ |
|
| 56 | $moduleOptionsManager = $appServiceLocator->get(ModuleOptionsPluginManagerInterface::class); |
|
| 57 | ||
| 58 | /** @var ModuleOptions $moduleOptions */ |
|
| 59 | $moduleOptions = $moduleOptionsManager->get(ModuleOptions::class); |
|
| 60 | ||
| 61 | $objectConstructorConfig = $moduleOptions->getObjectConstructor($objectConstructorName); |
|
| 62 | ||
| 63 | $name = $objectConstructorConfig->getName(); |
|
| 64 | $options = $objectConstructorConfig->getOptions(); |
|
| 65 | ||
| 66 | $objectConstructor = $serviceLocator->get( |
|
| 67 | $name, |
|
| 68 | $options |
|
| 69 | ); |
|
| 70 | ||
| 71 | if (!$objectConstructor instanceof ObjectConstructorInterface) { |
|
| 72 | $errMsg = sprintf( |
|
| 73 | 'Object constructor of type %s is invalid; must implement %s', |
|
| 74 | (is_object($objectConstructor) ? get_class($objectConstructor) : gettype($objectConstructor)), |
|
| 75 | ObjectConstructorInterface::class |
|
| 76 | ); |
|
| 77 | throw new Exception\RuntimeException($errMsg); |
|
| 78 | } |
|
| 79 | ||
| 80 | return $objectConstructor; |
|
| 81 | } |
|
| 82 | } |
|
| 83 | ||
| @@ 21-83 (lines=63) @@ | ||
| 18 | * |
|
| 19 | * @package Nnx\JmsSerializerModule\Visitor |
|
| 20 | */ |
|
| 21 | class VisitorsAbstractFactory implements AbstractFactoryInterface |
|
| 22 | { |
|
| 23 | /** |
|
| 24 | * @inheritdoc |
|
| 25 | * |
|
| 26 | * @param ServiceLocatorInterface $serviceLocator |
|
| 27 | * @param $name |
|
| 28 | * @param $requestedName |
|
| 29 | * |
|
| 30 | * @return bool|void |
|
| 31 | */ |
|
| 32 | public function canCreateServiceWithName(ServiceLocatorInterface $serviceLocator, $name, $requestedName) |
|
| 33 | { |
|
| 34 | return 0 === strpos($requestedName, 'nnxJmsSerializer.visitors.'); |
|
| 35 | } |
|
| 36 | ||
| 37 | /** |
|
| 38 | * @inheritdoc |
|
| 39 | * |
|
| 40 | * @param ServiceLocatorInterface $serviceLocator |
|
| 41 | * @param $name |
|
| 42 | * @param $requestedName |
|
| 43 | * |
|
| 44 | * @return ObjectConstructorInterface |
|
| 45 | * @throws \Nnx\JmsSerializerModule\Visitor\Exception\RuntimeException |
|
| 46 | * @throws \Nnx\JmsSerializerModule\ObjectConstructor\Exception\RuntimeException |
|
| 47 | * @throws \Zend\ServiceManager\Exception\ServiceNotFoundException |
|
| 48 | * @throws \Nnx\JmsSerializerModule\Options\Exception\InvalidArgumentException |
|
| 49 | */ |
|
| 50 | public function createServiceWithName(ServiceLocatorInterface $serviceLocator, $name, $requestedName) |
|
| 51 | { |
|
| 52 | $appServiceLocator = $serviceLocator instanceof AbstractPluginManager ? $serviceLocator->getServiceLocator() : $serviceLocator; |
|
| 53 | ||
| 54 | $visitorName = substr($requestedName, 26); |
|
| 55 | ||
| 56 | /** @var ModuleOptionsPluginManagerInterface $moduleOptionsManager */ |
|
| 57 | $moduleOptionsManager = $appServiceLocator->get(ModuleOptionsPluginManagerInterface::class); |
|
| 58 | ||
| 59 | /** @var ModuleOptions $moduleOptions */ |
|
| 60 | $moduleOptions = $moduleOptionsManager->get(ModuleOptions::class); |
|
| 61 | ||
| 62 | $visitorConfig = $moduleOptions->getVisitor($visitorName); |
|
| 63 | ||
| 64 | $name = $visitorConfig->getName(); |
|
| 65 | $options = $visitorConfig->getOptions(); |
|
| 66 | ||
| 67 | $visitor = $serviceLocator->get( |
|
| 68 | $name, |
|
| 69 | $options |
|
| 70 | ); |
|
| 71 | ||
| 72 | if (!$visitor instanceof VisitorInterface) { |
|
| 73 | $errMsg = sprintf( |
|
| 74 | 'VisitorInterface of type %s is invalid; must implement %s', |
|
| 75 | (is_object($visitor) ? get_class($visitor) : gettype($visitor)), |
|
| 76 | VisitorInterface::class |
|
| 77 | ); |
|
| 78 | throw new Exception\RuntimeException($errMsg); |
|
| 79 | } |
|
| 80 | ||
| 81 | return $visitor; |
|
| 82 | } |
|
| 83 | } |
|
| 84 | ||