/**
     * @return ClassMethod
     */
    protected function generateAdd()
    {
        $setter = new ClassMethod('add' . ucfirst($this->classProperty->getName()));
        $setter->setDescription('Add item to ' . $this->classProperty->getName());
        $setterParam = new MethodParameter($this->classProperty->getName(), 'mixed');
        $setter->addParameter($setterParam);
        $body = <<<BODY
\t\$this->{$this->classProperty->getName()} = \${$this->classProperty->getName()};
BODY;
        $setter->setBody($body);
        return $setter;
    }
 /**
  * @Route("/testclass", name="homepage")
  *
  * @Method("GET")
  */
 public function indexAction()
 {
     $class = new BaseClass('Classes', 'BestClass');
     $class->addProperty(new ClassProperty('test', 'string'));
     $method = new ClassMethod('setTest');
     $method->addParameter(new MethodParameter('test', 'string'));
     $method->setReturnType(null);
     $class->addMethod($method);
     $classGenerator = new ClassGenerator($class);
     $classWriter = new ClassWriter($classGenerator, new Filesystem(), '/Users/justingriffith/Sites/CodeCreator/');
     $classWriter->write();
     return $this->render('default/index.html.twig');
 }
 /**
  * @param array $methods
  *
  * @return array
  */
 private function translateMethodsToClassMethod(array $methods)
 {
     $result = [];
     foreach ($methods as $key => $method) {
         $method = (object) $method;
         $classMethod = new ClassMethod($key);
         if (isset($method->parameters)) {
             foreach ($method->parameters as $paramKey => $param) {
                 $classMethod->addParameter(new MethodParameter($paramKey, $param['type']));
             }
         }
         $result[] = $classMethod;
     }
     return $result;
 }