Code Duplication    Length = 50-50 lines in 2 locations

lib/Doctrine/DBAL/Platforms/SqlitePlatform.php 2 locations

@@ 1019-1068 (lines=50) @@
1016
     *
1017
     * @return \Doctrine\DBAL\Schema\Index[]
1018
     */
1019
    private function getIndexesInAlteredTable(TableDiff $diff)
1020
    {
1021
        $indexes = $diff->fromTable->getIndexes();
1022
        $columnNames = $this->getColumnNamesInAlteredTable($diff);
1023
1024
        foreach ($indexes as $key => $index) {
1025
            foreach ($diff->renamedIndexes as $oldIndexName => $renamedIndex) {
1026
                if (strtolower($key) === strtolower($oldIndexName)) {
1027
                    unset($indexes[$key]);
1028
                }
1029
            }
1030
1031
            $changed = false;
1032
            $indexColumns = [];
1033
            foreach ($index->getColumns() as $columnName) {
1034
                $normalizedColumnName = strtolower($columnName);
1035
                if ( ! isset($columnNames[$normalizedColumnName])) {
1036
                    unset($indexes[$key]);
1037
                    continue 2;
1038
                } else {
1039
                    $indexColumns[] = $columnNames[$normalizedColumnName];
1040
                    if ($columnName !== $columnNames[$normalizedColumnName]) {
1041
                        $changed = true;
1042
                    }
1043
                }
1044
            }
1045
1046
            if ($changed) {
1047
                $indexes[$key] = new Index($index->getName(), $indexColumns, $index->isUnique(), $index->isPrimary(), $index->getFlags());
1048
            }
1049
        }
1050
1051
        foreach ($diff->removedIndexes as $index) {
1052
            $indexName = strtolower($index->getName());
1053
            if (strlen($indexName) && isset($indexes[$indexName])) {
1054
                unset($indexes[$indexName]);
1055
            }
1056
        }
1057
1058
        foreach (array_merge($diff->changedIndexes, $diff->addedIndexes, $diff->renamedIndexes) as $index) {
1059
            $indexName = strtolower($index->getName());
1060
            if (strlen($indexName)) {
1061
                $indexes[$indexName] = $index;
1062
            } else {
1063
                $indexes[] = $index;
1064
            }
1065
        }
1066
1067
        return $indexes;
1068
    }
1069
1070
    /**
1071
     * @param \Doctrine\DBAL\Schema\TableDiff $diff
@@ 1075-1124 (lines=50) @@
1072
     *
1073
     * @return array
1074
     */
1075
    private function getForeignKeysInAlteredTable(TableDiff $diff)
1076
    {
1077
        $foreignKeys = $diff->fromTable->getForeignKeys();
1078
        $columnNames = $this->getColumnNamesInAlteredTable($diff);
1079
1080
        foreach ($foreignKeys as $key => $constraint) {
1081
            foreach ($diff->renamedForeignKeys as $oldForeignKeyName => $renamedForeignKey) {
1082
                if (strcasecmp($key, $oldForeignKeyName) === 0) {
1083
                    unset($foreignKeys[$key]);
1084
                }
1085
            }
1086
1087
            $changed = false;
1088
            $localColumns = [];
1089
            foreach ($constraint->getLocalColumns() as $columnName) {
1090
                $normalizedColumnName = strtolower($columnName);
1091
                if ( ! isset($columnNames[$normalizedColumnName])) {
1092
                    unset($foreignKeys[$key]);
1093
                    continue 2;
1094
                } else {
1095
                    $localColumns[] = $columnNames[$normalizedColumnName];
1096
                    if ($columnName !== $columnNames[$normalizedColumnName]) {
1097
                        $changed = true;
1098
                    }
1099
                }
1100
            }
1101
1102
            if ($changed) {
1103
                $foreignKeys[$key] = new ForeignKeyConstraint($localColumns, $constraint->getForeignTableName(), $constraint->getForeignColumns(), $constraint->getName(), $constraint->getOptions());
1104
            }
1105
        }
1106
1107
        foreach ($diff->removedForeignKeys as $constraint) {
1108
            $constraintName = strtolower($constraint->getName());
1109
            if (strlen($constraintName) && isset($foreignKeys[$constraintName])) {
1110
                unset($foreignKeys[$constraintName]);
1111
            }
1112
        }
1113
1114
        foreach (array_merge($diff->changedForeignKeys, $diff->addedForeignKeys, $diff->renamedForeignKeys) as $constraint) {
1115
            $constraintName = strtolower($constraint->getName());
1116
            if (strlen($constraintName)) {
1117
                $foreignKeys[$constraintName] = $constraint;
1118
            } else {
1119
                $foreignKeys[] = $constraint;
1120
            }
1121
        }
1122
1123
        return $foreignKeys;
1124
    }
1125
1126
    /**
1127
     * @param \Doctrine\DBAL\Schema\TableDiff $diff