/**
  * Allows subclasses to generate the view's markup dinamically.
  * If not overridden, the default behaviour is to render the view previously set by {@see createView}.
  *
  * ><p>**Note:** this returns nothing; the output is sent directly to the output buffer.
  */
 protected function render()
 {
     if ($this->view) {
         // The view model is sent to render() because the view may not be a Matisse template, in which case the model must
         // be set explicitly.
         echo $this->view->render($this->getViewModel());
     } elseif ($this->shadowDOM) {
         $this->shadowDOM->run();
     }
     // Otherwise, do NOT render the component's content
 }