/** * * @param ServiceLocatorInterface $serviceLocator * @param DataTransferAgentInterface $dataTransferAgent * @param array $identifiers * @throws ProcessException */ private function injectConverter(ServiceLocatorInterface $serviceLocator, DataTransferAgentInterface $dataTransferAgent, array $identifiers) { $converterClassName = $this->getDatatypesHandler($serviceLocator)->getConverterClassName($identifiers['mode'], $identifiers['type'], $identifiers['endpoint']); if (is_null($converterClassName)) { return; } try { $reflectionClass = new \ReflectionClass($converterClassName); $converter = $reflectionClass->newInstance(); } catch (\Exception $e) { throw new ProcessException($this->translate($serviceLocator, "Unable to create class") . " " . $converterClassName . " " . $this->translate($serviceLocator, "for the following reason") . " " . $e->getMessage(), $e->getCode(), $e); } if ($converter instanceof ServiceLocatorAwareInterface) { $converter->setServiceLocator($serviceLocator); } $dataTransferAgent->setConverter($converter); }