public function buildObjectBasedOn(BuildPlan $p)
 {
     $reflectedClass = $this->getReflectedClassBasedOn($p->getClassSource());
     $builtObject = $reflectedClass->newInstanceWithoutConstructor();
     $this->callMethodsOf($builtObject, $reflectedClass, $p->getAllMethodCalls());
     $this->buildPlanByBuildObject->attach($builtObject, $p);
     return $builtObject;
 }