/**
  * Built desired object.
  *
  * @param Request              $request        Request
  * @param FormFactoryInterface $formFactory    Form Factory
  * @param AnnotationForm       $annotation     Annotation
  * @param string               $parameterClass Class type of  method parameter
  * @param AbstractType         $type           Built Type object
  *
  * @return Mixed object to inject as a method parameter
  */
 protected function getBuiltObject(Request $request, FormFactoryInterface $formFactory, AnnotationForm $annotation, $parameterClass, AbstractType $type)
 {
     /**
      * Checks if parameter typehinting is AbstractType
      * In this case, form type as defined method parameter
      */
     if ('Symfony\\Component\\Form\\AbstractType' == $parameterClass) {
         return $type;
     }
     $entity = $request->attributes->get($annotation->getEntity());
     /**
      * Creates form object from type
      */
     $form = $formFactory->create($type, $entity);
     /**
      * Handling request if needed
      */
     if ($annotation->getHandleRequest()) {
         $form->handleRequest($request);
         if ($annotation->getValidate()) {
             $request->attributes->set($annotation->getValidate(), $form->isValid());
         }
     }
     /**
      * Checks if parameter typehinting is Form
      * In this case, inject form as defined method parameter
      */
     if (in_array($parameterClass, array('Symfony\\Component\\Form\\Form', 'Symfony\\Component\\Form\\FormInterface'))) {
         return $form;
     }
     /**
      * Checks if parameter typehinting is FormView
      * In this case, inject form's view as defined method parameter
      */
     if ('Symfony\\Component\\Form\\FormView' == $parameterClass) {
         return $form->createView();
     }
 }