Select Git revision
CodeGeneratorInterface.php
Bertrand Gauthier authored
Vérification de la présence/validité des colonnes source_code, source_id + Correction de la validation des colonnes d'historique.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
CodeGeneratorInterface.php 4.26 KiB
<?php
namespace UnicaenDbImport\CodeGenerator;
use Doctrine\DBAL\DBALException;
use UnicaenApp\Exception\RuntimeException;
use UnicaenDbImport\Domain\DestinationInterface;
use UnicaenDbImport\Domain\ResultInterface;
use UnicaenDbImport\Domain\SourceInterface;
/**
* Contrat à honorer pour les générateurs de code SQL.
*
* @package UnicaenDbImport\CodeGenerator\Common
*/
interface CodeGeneratorInterface
{
/**
* @param string $tableName
* @return string
*/
public function generateSQLForTableExistenceCheck($tableName);
/**
* @param array $result
* @return bool
*/
public function convertTableExistenceCheckResultToBoolean(array $result);
/**
* @param string $tableName
* @param array $columns
* @return string
*/
public function generateSQLForDataColumnsValidation($tableName, array $columns);
/**
* @param string $tableName
* @param array $result
* @param array $expectedColumns
* @return null|RuntimeException
*/
public function convertDataColumnsValidationBadResultToException($tableName, array $result, array $expectedColumns);
/**
* @param string $tableName
* @return mixed
*/
public function generateSQLForHistoColumnsValidation($tableName);
/**
* @param string $tableName
* @param array $result
* @return null|RuntimeException
*/
public function convertHistoColumnsValidationBadResultToException($tableName, array $result);
/**
* @param string $tableName
* @return string
* @codeCoverageIgnore Car simple délégation
*/
public function generateSQLForSourceColumnsValidation($tableName);
/**
* @param string $tableName
* @param array $result
* @return null|RuntimeException
* @codeCoverageIgnore Car simple délégation
*/
public function convertSourceColumnsValidationBadResultToException($tableName, array $result);
/**
* @param SourceInterface $source
* @return string
*/
public function generateSQLForSelectFromSource(SourceInterface $source);
/**
* @param SourceInterface $source
* @param DestinationInterface $destination
* @param string $intermediateTable
* @return string
*/
public function generateSQLForIntermediateTableCreation(SourceInterface $source,
DestinationInterface $destination,
$intermediateTable);
/**
* @param string $intermediateTable
* @param array $columnsValues
* @return string
*/
public function generateSQLForInsertIntoTable($intermediateTable, array $columnsValues);
/**
* @param string $logTableName
* @return string
*/
public function generateSQLForImportLogTableCreation(string $logTableName);
/**
* @param string $tableName
* @return string
*/
public function generateSQLForIntermmediateTableDrop($tableName);
/**
* @param string $tableName
* @return string
*/
public function generateSQLForTruncateTable($tableName);
/**
* @param SourceInterface $source
* @param DestinationInterface $destination
* @param string $intermediateTable
* @return string
* @throws DBALException
*/
public function generateSQLForDiffViewCreation(SourceInterface $source, DestinationInterface $destination, $intermediateTable);
/**
* @param SourceInterface $source
* @param DestinationInterface $destination
* @return string
*/
public function generateSQLForDiffViewSelect(SourceInterface $source, DestinationInterface $destination);
/**
* @param array $rows
* @param SourceInterface $source
* @param DestinationInterface $destination
* @return string
*/
public function generateSQLForDestinationUpdateFromDiffViewRequestResult(
array $rows,
SourceInterface $source,
DestinationInterface $destination);
/**
* @param ResultInterface $result
* @param string $importLogTable
* @return string
*/
public function generateSQLForInsertResultIntoLogTable(ResultInterface $result, string $importLogTable);
}