Code Duplication    Length = 50-50 lines in 2 locations

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

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