public function resolveValueFrom(ValueSource $source)
 {
     /* @var $source ArrayValue */
     $result = [];
     foreach ($source->getAllSources() as $key => $valueSource) {
         $result[$key] = $this->actualResolver->resolveValueFrom($valueSource);
     }
     return $result;
 }
 public function resolveValueFrom(ValueSource $source)
 {
     try {
         /* @var $source BuildPlanResultValue */
         return $this->buildingStrategy->buildObjectBasedOn($source->getBuildPlan());
     } catch (UnableToBuild $e) {
         throw new ImpossibleToResolveValue();
     }
 }
 public function resolveValueFrom(ValueSource $source)
 {
     /* @var $source ScalarValue */
     return $source->getHeldScalarValue();
 }
 private function resolveValueFromImpl(ValueSource $source)
 {
     /* @var $source InjectedValue */
     return $this->container->get($source->getKeyFromContainer());
 }