/**
  * @param ConfigContext $context
  * @param string        $rootEntityClass
  * @param string        $propertyPath
  * @param string        $entityClass
  *
  * @return callable
  */
 protected function getCustomizationHandler(ConfigContext $context, $rootEntityClass, $propertyPath, $entityClass)
 {
     return function (array $dataItem) use($context, $rootEntityClass, $propertyPath, $entityClass) {
         $customizationContext = $this->createCustomizationContext($context);
         $customizationContext->setRootClassName($rootEntityClass);
         $customizationContext->setPropertyPath($propertyPath);
         $customizationContext->setClassName($entityClass);
         $customizationContext->setResult($dataItem);
         $this->customizationProcessor->process($customizationContext);
         return $customizationContext->getResult();
     };
 }
 /**
  * @param ConfigContext $context
  * @param string        $rootEntityClass
  * @param string        $propertyPath
  * @param string        $entityClass
  * @param callable|null $previousHandler
  *
  * @return callable
  */
 protected function getCustomizationHandler(ConfigContext $context, $rootEntityClass, $propertyPath, $entityClass, $previousHandler)
 {
     return function (array $item) use($context, $rootEntityClass, $propertyPath, $entityClass, $previousHandler) {
         if (null !== $previousHandler) {
             $item = call_user_func($previousHandler, $item);
         }
         $customizationContext = $this->createCustomizationContext($context);
         $customizationContext->setRootClassName($rootEntityClass);
         $customizationContext->setPropertyPath($propertyPath);
         $customizationContext->setClassName($entityClass);
         $customizationContext->setResult($item);
         $this->customizationProcessor->process($customizationContext);
         return $customizationContext->getResult();
     };
 }