code: public function generate()
      {
          $GLOBALS['TL_CSS'][] = 'bundles/metamodelscore/css/style.css';
  
          $this->prepareWidgets();
  
          $arrOptions = $this->buildOptions();
  
          // Add a "no entries found" message if there are no sub widgets.
          if (!count($arrOptions)) {
              $arrOptions[] = '<td><p class="tl_noopt">'.$GLOBALS['TL_LANG']['MSC']['noResult'].'</p></td>';
          }
  
          $strHead = '';
          $strBody = sprintf('<tbody><tr>%s</tr></tbody>', implode("</tr>\n<tr>", $arrOptions));
  
          $strOutput = sprintf(
              '<table cellspacing="0"%s cellpadding="0" id="ctrl_%s" class="tl_subdca">%s%s</table>',
              (($this->style) ? ('style="' . $this->style . '"') : ('')),
              $this->strId,
              $strHead,
              $strBody
          );
  
          return sprintf(
              '<div id="ctrl_%s" class="tl_multiwidget_container%s clr">%s</div>',
              $this->strName,
              (strlen($this->strClass) ? ' ' . $this->strClass : ''),
              $strOutput
          );
      }
docs: Generate the widget and return it as string.
  
  @return string
  
  @SuppressWarnings(PHPMD.Superglobals)
  @SuppressWarnings(PHPMD.CamelCaseVariableName)