/**
  * Generate collection of tabs
  *
  * @return TabCollection
  */
 public function generate()
 {
     $client = $this->account->getClient();
     $ria = $client->getRia();
     $companyInfo = $ria->getRiaCompanyInformation();
     $primaryApplicant = $this->account->getPrimaryApplicant();
     $tabs = array();
     $advisorCode = new TextTab();
     $advisorCode->setTabLabel('advisor#')->setValue($this->getAdvisorCode($companyInfo));
     $tabs[] = $advisorCode;
     $accountNumber = new TextTab();
     $accountNumber->setTabLabel('account#')->setValue($this->account->getAccountNumber());
     $tabs[] = $accountNumber;
     $firmName = new TextTab();
     $firmName->setTabLabel('firm_name')->setValue($companyInfo->getName());
     $tabs[] = $firmName;
     $primaryContact = new TextTab();
     $primaryContact->setTabLabel('primary_contact')->setValue($companyInfo->getPrimaryFirstName() . ' ' . $companyInfo->getPrimaryLastName());
     $tabs[] = $primaryContact;
     $accountTypeTab = new RadioGroupTab();
     $accountTypeTab->setGroupName('account_type')->setValue('cash')->setSelected(true);
     $tabs[] = $accountTypeTab;
     $ownerTabs = $this->getOwnerInformationTabs($primaryApplicant);
     $type = new RadioGroupTab();
     $type->setGroupName('type')->setSelected(true);
     if ($this->account->isJointType()) {
         $type->setValue('joint');
     } else {
         $type->setValue('individual');
     }
     $tabs[] = $type;
     $tabs = array_merge($tabs, $ownerTabs);
     if ($this->account->isJointType()) {
         $jointOwnerTabs = $this->getOwnerInformationTabs($this->account->getSecondaryApplicant(), true);
         $tabs = array_merge($tabs, $jointOwnerTabs);
     }
     $cashSweepTab = new RadioGroupTab();
     $cashSweepTab->setGroupName('cash_sweep_vehicle')->setValue('td_ameritrade_fdic')->setSelected(true);
     $tabs[] = $cashSweepTab;
     return new TabCollection($tabs);
 }