/** * @throws UnableToBuild when the source provides something * else than an object. * @return mixed builder object */ private function getBuilderBasedOn(BuilderObjectProductBuildPlan $p) { $builderSource = $p->getBuilderSource(); $builder = $this->objectResolver->resolveValueFrom($builderSource); if (!is_object($builder)) { throw new UnableToBuild(); } return $builder; }