/**
  * @since 2.5
  *
  * @return Table[]
  */
 public function getTables()
 {
     if ($this->tables !== array()) {
         return $this->tables;
     }
     $this->addTable($this->newEntityIdTable());
     $this->addTable($this->newConceptCacheTable());
     $this->addTable($this->newQueryLinksTable());
     $this->addTable($this->newFulltextSearchTable());
     $this->addTable($this->newPropertyStatisticsTable());
     foreach ($this->store->getPropertyTables() as $propertyTable) {
         // Only extensions that aren't setup correctly can force an exception
         // and to avoid a failure during setup, ensure that standard tables
         // are correctly initialized otherwise SMW can't recover
         try {
             $diHandler = $this->store->getDataItemHandlerForDIType($propertyTable->getDiType());
         } catch (\Exception $e) {
             continue;
         }
         $this->addTable($this->newPropertyTable($propertyTable, $diHandler));
     }
     return $this->tables;
 }
 /**
  * Method to return the fields for this table
  *
  * @since 1.8
  *
  * @param SQLStore $store
  *
  * @return array
  */
 public function getFields(SQLStore $store)
 {
     $diHandler = $store->getDataItemHandlerForDIType($this->diType);
     return $diHandler->getTableFields();
 }