/**
  * Gathers up all the fiddly details we need for the ClassData object
  *
  * @param   MockData   $obj
  * @param   EntityData $entity
  * @return  MockData
  */
 private function generateMockDataDetails(MockData $obj, EntityData $entity)
 {
     $methodWorker = new MethodDataWorker();
     $propertyWorker = new PropertyDataWorker();
     $targetClass = $entity->getClassNamespace() . '\\' . $entity->getClassName();
     $obj->setHasConstructor($entity->getHasConstructor())->addUseStatements($entity->getUseStatements())->setExtends($entity->getExtends())->addImplements($entity->getImplements())->addMethods($methodWorker->generateMethodObjects($entity->getMethods()))->addProperties($propertyWorker->generatePropertyObjects($targetClass, $entity->getProperties(), $obj->getMethods()));
     return $obj;
 }
 /**
  * Gathers the target class details
  *
  * @param   EntityData $obj
  * @return  EntityData
  */
 private function getClassDetails(EntityData $obj)
 {
     $obj->setHasConstructor($this->hasConstructor($obj->getReflectionClass()))->addUseStatements($this->getClassUseStatements($obj->getFileData()->getFullFilePath()))->setExtends($this->getExtendsClass($obj->getReflectionClass()))->addImplements($this->getImplementsClasses($obj->getReflectionClass()))->addMethods($this->methodWorker->getClassMethods($obj->getReflectionClass()))->addProperties($this->propertyWorker->getClassProperties($obj->getReflectionClass()));
     return $obj;
 }