/**
  * {@inheritdoc}
  */
 public function transformArgument(DefinitionCall $definitionCall, $argumentIndex, $argumentValue)
 {
     $environment = $definitionCall->getEnvironment();
     list($simpleTransformations, $normalTransformations) = $this->splitSimpleAndNormalTransformations($this->repository->getEnvironmentTransformations($environment));
     $newValue = $this->applySimpleTransformations($simpleTransformations, $definitionCall, $argumentIndex, $argumentValue);
     $newValue = $this->applyNormalTransformations($normalTransformations, $definitionCall, $argumentIndex, $newValue);
     return $newValue;
 }
 /**
  * {@inheritdoc}
  */
 public function transformArgument(DefinitionCall $definitionCall, $argumentIndex, $argumentValue)
 {
     $environment = $definitionCall->getEnvironment();
     $transformations = $this->repository->getEnvironmentTransformations($environment);
     $newValue = $argumentValue;
     foreach ($transformations as $transformation) {
         $newValue = $this->transform($definitionCall, $transformation, $argumentIndex, $newValue);
     }
     return $newValue;
 }
 /**
  * {@inheritdoc}
  */
 public function transformArgument(DefinitionCall $definitionCall, $argumentIndex, $argumentValue)
 {
     $environment = $definitionCall->getEnvironment();
     $transformations = $this->repository->getEnvironmentTransformations($environment);
     usort($transformations, function (Transformation $t1, Transformation $t2) {
         // TODO: remove with upgrade of Transformation interface
         $t1p = $t1 instanceof SimpleArgumentTransformation ? $t1->getPriority() : 0;
         $t2p = $t2 instanceof SimpleArgumentTransformation ? $t2->getPriority() : 0;
         if ($t1p == $t2p) {
             return 0;
         }
         return $t1p > $t2p ? -1 : 1;
     });
     $newValue = $argumentValue;
     foreach ($transformations as $transformation) {
         $newValue = $this->transform($definitionCall, $transformation, $argumentIndex, $newValue);
     }
     return $newValue;
 }