/**
  *
  * @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);
 }