/**
  * @param ClassConstructorManager $classConstructor
  * @return string
  * @throws RendererException
  */
 protected function renderClassConstructor(ClassConstructorManager $classConstructor)
 {
     $template = $classConstructor->getTemplate();
     $tags = $classConstructor->getTemplateTags();
     $initProperties = [];
     foreach ($classConstructor->getInitProperties() as $initProperty) {
         $initProperties[] = $this->render($initProperty);
     }
     $initPropertiesRendered = empty($initProperties) ? "" : $this->addNewLineAfter(Tools::implodeArrayToTemplate($initProperties));
     $args[RenderableInterface::TAG_INIT_PROPERTIES] = $initPropertiesRendered;
     return $this->addNewLineAfter($this->addIndentation($this->replace($tags, $args, $template), self::INDENT_4_SPACES));
 }