/**
  * Add a new table configuration.
  *
  * @param TableConfiguration $tableConfig
  *
  * @return TableConfiguration
  */
 public function addTableConfig(TableConfiguration $tableConfig)
 {
     return $this->tableConfigs[$tableConfig->getName()] = $tableConfig;
 }
Пример #2
0
 /**
  * Init the array that is used to harvest values for dependency resolving.
  *
  * @param TableConfiguration $tableConfig
  */
 private function initValueHarvesting(TableConfiguration $tableConfig)
 {
     $this->harvestedValues[$tableConfig->getName()] = array();
     $harvestColumns = $tableConfig->getColumnsToHarvest();
     foreach ($harvestColumns as $harvestColumn) {
         $this->harvestedValues[$tableConfig->getName()][$harvestColumn] = array();
     }
 }
Пример #3
0
 /**
  * Validates and modifies the data dependent filter to act like an IN-filter.
  *
  * @param DataDependentFilter $filter
  * @param TableConfiguration               $tableConfig
  * @param array                            $harvestedValues
  */
 private function handleDataDependentFilter(DataDependentFilter $filter, TableConfiguration $tableConfig, array $harvestedValues)
 {
     $tableName = $tableConfig->getName();
     $referencedTable = $filter->getReferencedTable();
     $referencedColumn = $filter->getReferencedColumn();
     // Ensure the dependent table has been dumped before the current table
     if (!isset($harvestedValues[$referencedTable])) {
         throw new InvalidArgumentException(sprintf('The table %s has not been dumped before %s', $referencedTable, $tableName));
     }
     // Ensure the necessary column was included in the dump
     if (!isset($harvestedValues[$referencedTable][$referencedColumn])) {
         throw new InvalidArgumentException(sprintf('The column %s of table %s has not been dumped.', $referencedTable, $tableName));
     }
     $filter->setValue($harvestedValues[$referencedTable][$referencedColumn]);
 }