Skip to content
Snippets Groups Projects
Select Git revision
  • 1b08d852478572d16bcc3ed9105f6a1e3c372cfe
  • master default protected
  • release_7.2.1
  • release_7.2.0
  • unicaen_authentification
  • release_6.1.2
  • release_6.0.4
  • release_6.1.0
  • release_6.0.3
  • 6.1.0
  • smile
  • 5.x
  • release_5.2.2
  • utilisateur
  • release_5.2.1
  • laminas-bs5-UnicaenPrivilege
  • feature_import_one_row
  • laminas_migration
  • PHP_7-4
  • release_4.0.2
  • release_4.0.0
  • 7.3.2
  • 7.3.1
  • 7.3.0
  • 7.2.1
  • 7.2.0
  • 7.1.0
  • 6.2.0
  • 7.0.0
  • 6.1.4
  • 6.1.3
  • 6.1.2
  • 6.1.1
  • 6.1.0
  • 6.0.3
  • 6.0.2
  • 5.2.3
  • 6.0.1
  • 6.0.0
  • 5.2.2
  • emc2_1.0.0
41 results

CodeGeneratorInterface.php

  • Bertrand Gauthier's avatar
    Bertrand Gauthier authored
    Vérification de la présence/validité des colonnes source_code, source_id + Correction de la validation des colonnes d'historique.
    1b08d852
    History
    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);
    }