Commit 97a2afb2 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Correction et doc manquante sur les setters dans SourceInterface et DestinationInterface

parent d067ab73
Loading
Loading
Loading
Loading
+2 −2
Changes for CHANGELOG.md: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -2,11 +2,11 @@ Changelog
=========
7.3.2
-----
- Ajout des setter aux Source et Destination 
- Ajout de setters dans SourceInterface et DestinationInterface. 

- 7.3.1
-----
- Paramètre code des exceptions null deprecated, remplacements des exception par Exception("message', previous: $e);
- Construction des exceptions : suppression du paramètre $code à null car c'est désormais deprecated.

7.3.0
-----
+13 −4
Changes for src/UnicaenDbImport/Domain/Destination.php: 13 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -235,10 +235,12 @@ class Destination implements DestinationInterface
    {
        $this->config->set('where', $where);
    }

    public function setConnection(Connection $connection): void
    {
        $this->config->set('connection', $connection);
    }

    public function setSourceCodeColumn(string $sourceCodeColumn): void
    {
        $this->config->set('source_code_column', $sourceCodeColumn);
@@ -246,24 +248,29 @@ class Destination implements DestinationInterface

    public function setUndeleteEnabledColumn(?string $undeleteEnabledColumn): void
    {
        $this->config->set('update_on_deleted_enabled_column', $undeleteEnabledColumn);
        $this->config->set('undelete_enabled_column', $undeleteEnabledColumn);
    }
    public function setUpdateOnDeletedEnabledColumn(?string $undeleteEnabledColumn): void

    public function setUpdateOnDeletedEnabledColumn(?string $udateOnDeletedEnabledColumn): void
    {
        $this->config->set('update_on_deleted_enabled_column', $undeleteEnabledColumn);
        $this->config->set('update_on_deleted_enabled_column', $udateOnDeletedEnabledColumn);
    }

    public function setColumnValueFilter(?array $valueFilter): void
    {
        $this->config->set('column_value_filter', $valueFilter);
    }

    public function setExtra(?array $extra): void
    {
        $this->config->set('extra', $extra);
    }

    public function setIdColumnStrategy(?string $idColumnStrategy): void
    {
        $this->config->set('id_strategy', $idColumnStrategy);
    }

    public function setIdColumnSequence(?string $idColumnSequence): void
    {
        $this->config->set('id_sequence', $idColumnSequence);
@@ -273,10 +280,12 @@ class Destination implements DestinationInterface
    {
        $this->config->set('intermediate_table', $intermediateTable);
    }

    public function setIntermediateTableAutoDrop(?bool $intermediateTableAutoDrop): void
    {
        $this->config->set('intermediate_table_auto_drop', $intermediateTable);
        $this->config->set('intermediate_table_auto_drop', $intermediateTableAutoDrop);
    }

    public function setLogTable(?string $logTable): void
    {
        $this->config->set('log_table', $logTable);
+64 −3
Changes for src/UnicaenDbImport/Domain/DestinationInterface.php: 64 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ interface DestinationInterface
    /**
     * Retourne le petit nom de cette destination.
     *
     * @return null|string
     * @return string
     */
    public function getName(): string;

@@ -44,7 +44,7 @@ interface DestinationInterface
    public function getTable(): string;

    /**
     * Retourne le filtre SQL éventuel permettant de restreindre les données destinations concernées.
     * Retourne le filtre SQL éventuel permettant de restreindre les données destinations.
     *
     * @return string|null
     */
@@ -146,21 +146,82 @@ interface DestinationInterface
     */
    public function getLogTable(): string;


    /**
     * @desc Setteur pour pouvoir modifier dinamyquement la config
     * Spécifie le nom de la table de destination.
     */
    public function setTable(string $table): void;

    /**
     * Spécifie le filtre SQL éventuel permettant de restreindre les données destinations.
     */
    public function setWhere(?string $where): void;

    /**
     * Spécifie l'instance de la connexion Doctrine vers cette destination.
     */
    public function setConnection(Connection $connection): void;

    /**
     * Spécifie le nom de la colonne commune existant obligatoirement dans la table/vue source
     * et la table destination.
     *
     * Dans les tables source et destination, cette colonne est celle d'un identifiant unique permettant
     * de rapprocher les enregistrements source et destination.
     */
    public function setSourceCodeColumn(string $sourceCodeColumn): void;

    /**
     * Spécifie le nom de la colonne éventuelle dans la table destination permettant d'autoriser ou on l'opération 'undelete'.
     */
    public function setUndeleteEnabledColumn(?string $undeleteEnabledColumn): void;

    /**
     * Spécifie le nom de la colonne éventuelle dans la table destination permettant d'autoriser ou non l'opération 'update'
     * sur les enregistrements historisés.
     */
    public function setUpdateOnDeletedEnabledColumn(?string $udateOnDeletedEnabledColumn): void;

    /**
     * Spécifie les instances de filtres éventuels permettant de transformer une veleur de colonne/attribut source
     * en une valeur de colonne destination.
     */
    public function setColumnValueFilter(?array $valueFilter): void;

    /**
     * Spécifie les éventuelles attributs libres complémentaires.
     */
    public function setExtra(?array $extra): void;

    /**
     * Spécifie le nom de la strategy à utiliser pour générer les valeurs de la colonne ID (clé primaire).
     * Si la stratégie est `'SEQUENCE'`, la séquence spécifiée par {@see getIdColumnSequence()} sera utilisée.
     * Si la stratégie est `'IDENTITY'`, la valeur de l'ID des données sources sera utilisée.
     * Si la stratégie est `null`, la colonne de la table destination devra avoir un type auto-incrémenté
     * pour que l'insertion fonctionne.
     */
    public function setIdColumnStrategy(?string $idColumnStrategy): void;

    /**
     * Spécifie le nom éventuel de la séquence permettant de générer les valeurs dans la colonne ID (clé primaire).
     * Si la valeur retournée est `null`, le nom de séquence par défaut '{table}_ID_SEQ' sera utilisé.
     */
    public function setIdColumnSequence(?string $idColumnSequence): void;

    /**
     * Spécifie le nom de la table intermédiaire à créer dans la base de données de destination
     * lorsque l'utilisation d'une table intermédiaire est nécessaire (cf {@link requiresIntermediateTable}).
     */
    public function setIntermediateTable(?string $intermediateTable): void;

    /**
     * Indique si la suppression automatique de la table intermédiaire est activée.
     */
    public function setIntermediateTableAutoDrop(?bool $intermediateTableAutoDrop): void;

    /**
     * Spécifie le nom de la table des logs.
     */
    public function setLogTable(?string $logTable): void;

}
 No newline at end of file
+18 −14
Changes for src/UnicaenDbImport/Domain/Source.php: 18 added lines, 14 removed lines.
Original line number Diff line number Diff line
@@ -356,33 +356,25 @@ class Source implements SourceInterface
        return $data;
    }

    
    public function setTable(string $table): void
    {
        $this->config->set('table', $table);
    }

    public function setSelect(?string $select): void
    {
        $this->config->set('select', $select);
    }

    public function setWhere(?string $where): void
    {
        $this->config->set('where', $where);
    }

    public function setConnection(Connection $connection): void
    {
        $this->config->set('connection', $connection);
    }
    public function setColumnValueFilter(?array $valueFilter): void
    {
        $this->config->set('column_value_filter', $valueFilter);
    }
    public function setExtra(?array $extra): void
    {
        $this->config->set('extra', $extra);
    }

    public function setSelect(?string $select): void
    {
        $this->config->set('select', $select);
    }

    public function setSourceCodeColumn(string $sourceCodeColumn): void
    {
@@ -393,10 +385,22 @@ class Source implements SourceInterface
    {
        $this->config->set('computed_columns', $computedColumns);
    }

    public function setColumnNameFilter(?ColumnNameFilterInterface $columnNameFilter): void
    {
        $this->config->set('column_name_filter', $columnNameFilter);
    }

    public function setColumnValueFilter(?array $valueFilter): void
    {
        $this->config->set('column_value_filter', $valueFilter);
    }

    public function setExtra(?array $extra): void
    {
        $this->config->set('extra', $extra);
    }

    public function setPageSize(?int $pageSize): void
    {
        $this->config->set('page_size', $pageSize);
+51 −7
Changes for src/UnicaenDbImport/Domain/SourceInterface.php: 51 added lines, 7 removed lines.
Original line number Diff line number Diff line
@@ -40,14 +40,14 @@ interface SourceInterface
    public function getTable(): ?string;

    /**
     * Retourne l'instruction SQL permettant de requêter la source.
     * Retourne l'instruction permettant de requêter la source (ex: select SQL, fragment d'URL).
     *
     * @return string|null
     */
    public function getSelect(): ?string;

    /**
     * Retourne le filtre SQL éventuel à appliquer aux données sources.
     * Retourne le filtre éventuel à appliquer aux données sources.
     *
     * @return string|null
     */
@@ -61,11 +61,11 @@ interface SourceInterface
    public function getConnection();

    /**
     * Retourne le nom de la colonne commune existant obligatoirement dans la table/vue source
     * ET la table destination.
     * Retourne le nom de la colonne ou attribut commun existant obligatoirement dans les données source
     * et la table destination.
     *
     * Dans les tables source et destination, cette colonne est celle d'un identifiant unique permettant
     * de rapprocher les enregistrements source et destination.
     * Dans les source et destination, cette colonne ou attribut est celui d'un identifiant unique permettant
     * de rapprocher les données source et destination.
     *
     * @return string Exemple: 'code'
     */
@@ -141,17 +141,61 @@ interface SourceInterface
     */
    public function getPageSize(): int;


    /**
     * @desc Setteur pour pouvoir modifier dinamyquement la config
     * Spécifie le nom de la table de source, le cas échéant.
     */
    public function setTable(string $table): void;

    /**
     * Spécifie l'instruction permettant de requêter la source (ex: select SQL, fragment d'URL).
     */
    public function setSelect(?string $select): void;

    /**
     * Spécifie le filtre éventuel à appliquer aux données sources.
     */
    public function setWhere(?string $where): void;

    /**
     * Spécifie l'instance de la connexion vers cette source.
     */
    public function setConnection(Connection $connection): void;

    /**
     * Spécifie la colonne ou attribut commun existant obligatoirement dans les données source
     * et la table destination.
     *
     * Dans les source et destination, cette colonne ou attribut est celui d'un identifiant unique permettant
     * de rapprocher les données source et destination.
     */
    public function setSourceCodeColumn(string $sourceCodeColumn): void;

    /**
     * Spécifie les éventuels colonnes/attributs dont la valeur est caclulée, au format suivant :
     * 'nom de la colonne/attribut calculée' => {@see \UnicaenDbImport\Filter\ColumnValue\ColumnValueFilterInterface}.
     */
    public function setComputedColumns(array $computedColumns): void;

    /**
     * Spécifie l'instance de filtre permettant de transformer un nom de colonne/attribut source
     * en un nom de colonne destination.
     */
    public function setColumnNameFilter(?ColumnNameFilterInterface $columnNameFilter): void;

    /**
     * Spécifie les instances de filtres éventuels permettant de transformer une valeur de colonne/attribut source
     * en une valeur de colonne destination.
     */
    public function setColumnValueFilter(array $valueFilter): void;

    /**
     * Spécifie d'éventuelles attributs libres complémentaires.
     */
    public function setExtra(?array $extra): void;

    /**
     * Spécifie la taille des pages à respecter dans l'obtention des données.
     */
    public function setPageSize(?int $pageSize): void;
}
 No newline at end of file